佛山美容院网站建设,wordpress图片模板,wordpress如何添加icp,招聘网站建设方案模板文章目录1. 题目2. 解题1. 题目
在一条单车道上有 n 辆车#xff0c;它们朝着同样的方向行驶。 给你一个长度为 n 的数组 cars #xff0c;其中 cars[i] [positioni, speedi] #xff0c;它表示#xff1a;
positioni 是第 i 辆车和道路起点之间的距离#xff08;单位它们朝着同样的方向行驶。 给你一个长度为 n 的数组 cars 其中 cars[i] [positioni, speedi] 它表示
positioni 是第 i 辆车和道路起点之间的距离单位米。 题目保证 positioni positioni1 。speedi 是第 i 辆车的初始速度单位米/秒。
简单起见所有车子可以视为在数轴上移动的点。 当两辆车占据同一个位置时我们称它们相遇了。 一旦两辆车相遇它们会合并成一个车队这个车队里的车有着同样的位置和相同的速度速度为这个车队里 最慢 一辆车的速度。
请你返回一个数组 answer 其中 answer[i] 是第 i 辆车与下一辆车相遇的时间单位秒如果这辆车不会与下一辆车相遇则 answer[i] 为 -1 。 答案精度误差需在 10-5 以内。
示例 1
输入cars [[1,2],[2,1],[4,3],[7,2]]
输出[1.00000,-1.00000,3.00000,-1.00000]
解释经过恰好 1 秒以后第一辆车会与第二辆车相遇并形成一个 1 m/s 的车队。
经过恰好 3 秒以后第三辆车会与第四辆车相遇并形成一个 2 m/s 的车队。示例 2
输入cars [[3,4],[5,4],[6,3],[9,1]]
输出[2.00000,1.00000,1.50000,-1.00000]提示
1 cars.length 10^5
1 positioni, speedi 10^6
positioni positioni1来源力扣LeetCode 链接https://leetcode-cn.com/problems/car-fleet-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
类似题目LeetCode 853. 车队排序
class Solution {
public:vectordouble getCollisionTimes(vectorvectorint cars) {int n cars.size();vectordouble ans(n, -1.0);stackint s;for(int i n-1; i 0; i--) {while(!s.empty() (cars[s.top()][1] cars[i][1] || (ans[s.top()] 0 delta(cars, i, s.top()) ans[s.top()]))){ // 我的速度没有前车大追不上前面的检查再前面的人前面可能有更慢的//前车 top 能撞上别人 且 撞上别人的时间 小于 我撞上top的时间那我应该去跟更前面的人计算// 因为前车 top 已经先于我 撞上更前面的s.pop();}if(!s.empty())ans[i] delta(cars, i, s.top());s.push(i);}return ans;}double delta(vectorvectorint cars, int i, int j)//j 位置远速度慢{return (cars[j][0] - cars[i][0])/double(cars[i][1] - cars[j][1]);}
};572 ms 122.8 MB C 我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步