1503.所有蚂蚁掉下来前的最后一刻
2020年7月5日 196周周赛第二题
先不要想着模拟,本题的意思是,根本没有什么对碰后反向,而是该走走。那么时间就是每个方向上最后一个走到边上的时间的最大值。
本思路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);
}
}