当前位置: 首页 > news >正文

一个app软件西安seo服务培训

一个app软件,西安seo服务培训,企业官网网页设计报价,wordpress更新缓存本文涉及的基础知识点 C单调栈 LeetCode853. 车队 在一条单行道上,有 n 辆车开往同一目的地。目的地是几英里以外的 target 。 给定两个整数数组 position 和 speed ,长度都是 n ,其中 position[i] 是第 i 辆车的位置, speed[i…

本文涉及的基础知识点

C++单调栈

LeetCode853. 车队

在一条单行道上,有 n 辆车开往同一目的地。目的地是几英里以外的 target 。
给定两个整数数组 position 和 speed ,长度都是 n ,其中 position[i] 是第 i 辆车的位置, speed[i] 是第 i 辆车的速度(单位是英里/小时)。
一辆车永远不会超过前面的另一辆车,但它可以追上去,并以较慢车的速度在另一辆车旁边行驶。
车队 是指并排行驶的一辆或几辆汽车。车队的速度是车队中 最慢 的车的速度。
即便一辆车在 target 才赶上了一个车队,它们仍然会被视作是同一个车队。
返回到达目的地的车队数量 。
示例 1:
输入:target = 12, position = [10,8,0,5,3], speed = [2,4,1,1,3]
输出:3
解释:
从 10(速度为 2)和 8(速度为 4)开始的车会组成一个车队,它们在 12 相遇。车队在 target 形成。
从 0(速度为 1)开始的车不会追上其它任何车,所以它自己是一个车队。
从 5(速度为 1) 和 3(速度为 3)开始的车组成一个车队,在 6 相遇。车队以速度 1 移动直到它到达 target。
示例 2:
输入:target = 10, position = [3], speed = [3]
输出:1
解释:
只有一辆车,因此只有一个车队。
示例 3:
输入:target = 100, position = [0,2,4], speed = [4,2,1]
输出:1
解释:
从 0(速度为 4) 和 2(速度为 2)开始的车组成一个车队,在 4 相遇。从 4 开始的车(速度为 1)移动到了 5。
然后,在 4(速度为 2)的车队和在 5(速度为 1)的车成为一个车队,在 6 相遇。车队以速度 1 移动直到它到达 target。
提示:
n == position.length == speed.length
1 <= n <= 105
0 < target <= 106
0 <= position[i] < target
position 中每个值都 不同
0 < speed[i] <= 106

单调栈

性质一:车头速度没边,其它车有可能变化。
性质二:postion[i1] > postion[i2],由于不能超车,则i1从始至终都在i2前面。
性质三:排除i1和i2以外的所有车,如果i2能赶上i1,则在本题一定能加入一个车队。
性质四 ∀ \forall i1,postion[i1] > postion[i2], 排除i1和i2以外的所有车,i2都赶不上i1。则在本题中,i2赶不上任何一两车,即无法加入车队,成为车头。可以用反证法证明:如果加入车队时,车头是i1,车头速度没降。那么除去i1、i2外,i2也能赶上i1。
indexs是postion的下标,postion[indexs[i]] 降序排序。
for(i : indexs) 处理postion[i]和speed[i]。
如果前面有车到达终点需要的时间 >= 当前车需要的时间,则本车会加入车队。
否则是车头。
故只需要记录之前车辆的最晚到达时间,不需要单调栈。
如果需要计算撞的那辆车,则需要用单调栈记录各车时间:
如果后面的车到达时间>=前面车的到达时间,则前面的车永远不再会成为车头,故淘汰之。淘汰后,单调栈降序记录到达时间。处理完当前车队后,如果栈为空则是车头。时间相等无需特殊处理。

代码

核心代码

class Solution {public:int carFleet(int target, vector<int>& position, vector<int>& speed) {const int N = position.size();vector<int> indexs(N);iota(indexs.begin(), indexs.end(), 0);sort(indexs.begin(), indexs.end(), [&](const int i1, const int i2) {return position[i1] >position[i2]; });double maxTime = 0;int ret = 0;for (const auto& i : indexs) {double cur = (target - (double)position[i]) / speed[i];ret += (cur > maxTime);maxTime = max(maxTime, cur);}return ret;}};

单元测试

	int target;vector<int> position, speed;TEST_METHOD(TestMethod1){target = 12, position = { 8,10 }, speed = { 4,2 };auto res = Solution().carFleet(target, position, speed);AssertEx(1, res);}TEST_METHOD(TestMethod11){target = 12, position = { 10,8,0,5,3 }, speed = { 2,4,1,1,3 };auto res = Solution().carFleet(target, position, speed);AssertEx(3, res);}TEST_METHOD(TestMethod12){target = 10, position = { 3 }, speed = { 3 };auto res = Solution().carFleet(target, position, speed);AssertEx(1, res);}TEST_METHOD(TestMethod13){target = 100, position = { 0,2,4 }, speed = { 4,2,1 };auto res = Solution().carFleet(target, position, speed);AssertEx(1, res);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

http://www.yayakq.cn/news/384132/

相关文章:

  • 石家庄市市政建设总公司网站怎么强制下载网页视频
  • 网站删除模块wordpress 阅读次数
  • 电子商务网站设计的原则和内容嘉定网站建设哪家便宜
  • 凌源网站建设ae如何做视频模板下载网站
  • 关于网站建设的工作计划公司logo查询网站
  • 泰州网站设计公司网站建设托管公司
  • 上海知名的网站公司做影视网站版权问题
  • 杭州网站建设公司慕枫手机网店开店网站
  • 上海网站建设公司 珍岛建设营销型网站模板
  • 帮人做网站的公司建立网站有哪些步骤?
  • html如何做购物网站大型网站架构实战
  • 搭建网站的过程wordpress云储存缩略图
  • 推荐六款适合做小说阅读站及小说下载站的wordpress 模板赣州人才网最新招聘信息网
  • 做网站需要服务器和什么佛山 网站开发
  • 国外空间做网站怎么样网站开发程序
  • 铁岭哪家做营销型网站网页游戏排行榜20
  • 济南制作网站的公司广告制作公司合同
  • 分类信息网站怎么建设广州安全教育平台软件
  • 南平网站seo线上网课
  • 夜狼seo贵阳网站排名优化
  • 网站建设移动网络网站结构优化包括哪些
  • 网站加速器推荐青岛建设银行网站
  • 网站首页翻转效果什么模块如何建设网站济南兴田德润o简介电话
  • 网站已经备案更换主机申请免费网站注册
  • 快速搭建网站的工具有哪些wordpress的插件目录
  • 自己怎样做海外网站有哪些高端的网站
  • 网站登录窗口怎么做有教做路桥质检资料的网站吗
  • 网站中的分享怎么做c 做网站源码实例
  • 店铺设计图纸及效果图大全windows优化大师卸载不掉
  • 地方网站系统建立网站 营业执照