网站建设怎么设置网址,长沙装修公司排名前十口碑推荐,包工头网,市场营销策划案的范文脑经急转弯排序
碰撞只改变运动方向#xff0c;速度始终如1#xff0c;且机器人视为无差别的#xff0c;所以碰撞等于擦肩而过#xff01;机器人碰撞#xff0c;到底撞没撞#xff0c;如撞。因此只考虑每个机器人单方向移动#xff0c;d秒后停…脑经急转弯排序
碰撞只改变运动方向速度始终如1且机器人视为无差别的所以碰撞等于擦肩而过机器人碰撞到底撞没撞如撞。因此只考虑每个机器人单方向移动d秒后停下即可。
统计所有机器人之间两两距离之和可以按照贡献法 一共n个点(机器人)有n-1个间隔(相邻机器人的间距) 每个间隔被统计的次数 左侧的点的数量 ( 包含端点 ) ∗ 右侧的点的数量 ( 包含端点 ) 每个间隔被统计的次数左侧的点的数量(包含端点)*右侧的点的数量(包含端点) 每个间隔被统计的次数左侧的点的数量(包含端点)∗右侧的点的数量(包含端点)
排序后按照贡献法(其实是数学方法hh)统计距离之和得到答案本题解决。
class Solution {
public:const int mod 1e9 7;int sumDistance(vectorint nums, string s, int d) {for (int i 0; i nums.size(); i ) {if (L s[i]) {nums[i] - d;} else {nums[i] d;}}sort(nums.begin(), nums.end());int ans 0;for (int i 1; i nums.size(); i ) {long long t ((long long)nums[i] - (long long)nums[i - 1]) % mod * (i * (nums.size() - i) % mod);ans (ans t) % mod;}return ans;}
};
};时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn) : n n n是 n u m s nums nums的长度(机器人的数量)排序的时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)。 空间复杂度 O ( n ) O(n) O(n) : 本文原地修改数组空间瓶颈取决于排序的空间复杂度 O ( l o g n ) O(logn) O(logn)。建议另开一个数组存储机器人的位置空间复杂度 O ( n ) O(n) O(n) 。
AC 致语
理解思路很重要读者有问题请留言清墨看到就会回复的。