码迷,mamicode.com
首页 > 其他好文 > 详细

所有蚂蚁掉下来前的最后一刻

时间:2020-07-05 17:38:20      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:一模一样   before   lan   alt   链接   思路   著作权   bsp   loading   

有一块木板,长度为 n 个 单位 。一些蚂蚁在木板上移动,每只蚂蚁都以 每秒一个单位 的速度移动。其中,一部分蚂蚁向 左 移动,其他蚂蚁向 右 移动。

当两只向 不同 方向移动的蚂蚁在某个点相遇时,它们会同时改变移动方向并继续移动。假设更改方向不会花费任何额外时间。

而当蚂蚁在某一时刻 t 到达木板的一端时,它立即从木板上掉下来。

给你一个整数 n 和两个整数数组 left 以及 right 。两个数组分别标识向左或者向右移动的蚂蚁在 t = 0 时的位置。请你返回最后一只蚂蚁从木板上掉下来的时刻。

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 

 

解题思路
读了大神的解释,只用考虑左边掉落下来和右边掉落下来的时间,关于相撞可以忽略掉。下边是大神的
解释。
两个蚂蚁相撞之后会互相调头,其实只要想成如果每只蚂蚁都长得一模一样,那么是不是蚂蚁碰撞的调头 就等于 穿透了?

知道了这一点,那么就可以直接让蚂蚁直接穿透爬行就好了

那么题目就变成了求单只最晚落地的蚂蚁,与碰撞无关

作者:imcover
链接:https://leetcode-cn.com/problems/last-moment-before-all-ants-fall-out-of-a-plank/solution/ma-yi-you-mei-de-pa-pa-pa-pa-by-imcover/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

代码

#define Max(a,b) a>b?a:b
int getLastMoment(int n, int* left, int leftSize, int* right, int rightSize){
int i,max=-1;
for(i=0;i<leftSize;i++)
{
max=Max(max,left[i]);
}
for(i=0;i<rightSize;i++)
{
max=Max(max,n-right[i]);
}
return max;
}

作者:tony-ht
链接:https://leetcode-cn.com/problems/last-moment-before-all-ants-fall-out-of-a-plank/solution/cyu-yan-guan-yu-ma-yi-pa-pa-pa-by-tony-ht/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

所有蚂蚁掉下来前的最后一刻

标签:一模一样   before   lan   alt   链接   思路   著作权   bsp   loading   

原文地址:https://www.cnblogs.com/sbb-first-blog/p/13246514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!