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

原题

1503.所有蚂蚁掉下来前的最后一刻
2020年7月5日 196周周赛第二题
leetcode 1503.所有蚂蚁掉下来前的最后一刻_第1张图片

题解

方法一

先不要想着模拟,本题的意思是,根本没有什么对碰后反向,而是该走走。那么时间就是每个方向上最后一个走到边上的时间的最大值。
本思路java代码示例:

/*
@可爱抱抱
执行用时:6 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:40 MB, 在所有 Java 提交中击败了100.00%的用户
2020年7月5日 13:29
*/
class Solution {
    public int getLastMoment(int n, int[] left, int[] right) {
        Arrays.sort(left);
        Arrays.sort(right);
        return Math.max(left.length>0?left[left.length-1]:0,right.length>0?n-right[0]:0);
    }
}

直接遍历的话,代码会比较多,但是时间复杂度较低。
java代码示例:

/*
@v7fgg
执行用时:1 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:39.9 MB, 在所有 Java 提交中击败了100.00%的用户
2020年7月6日 10:33
*/
class Solution {
    public int getLastMoment(int n, int[] left, int[] right) {
        int zuoMax=0;
        int youMax=0;
        for(int i=0;i<left.length;i++){
            zuoMax=Math.max(zuoMax,left[i]);
        }
        for(int i=0;i<right.length;i++){
            if(n-right[i]>youMax){
                youMax=n-right[i];
            }
        }
        return Math.max(zuoMax,youMax);
    }
}

你可能感兴趣的:(可爱宝宝做leetcode)