zoukankan      html  css  js  c++  java
  • 所有蚂蚁掉下来前的最后一刻

    有一块木板,长度为 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)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/sbb-first-blog/p/13246514.html
Copyright © 2011-2022 走看看