您的位置:首页 > 其它

【leetcode】485.解题报告

2017-05-08 11:29 399 查看

自己的答案

public class Solution {
public List<Integer> findDuplicates(int[] nums) {
List<Integer> res = new ArrayList<>();
for(int i=0;i<nums.length;++i){
int index = Math.abs(nums[i])-1;
if(nums[index]<0)
res.add(Math.abs(index+1));
nums[index]=-nums[index];
}
return res;

}
}


别人的漂亮代码

public int findMaxConsecutiveOnes(int[] nums) {
int maxHere = 0, max = 0;
for (int n : nums)
max = Math.max(max, maxHere = n == 0 ? 0 : maxHere + 1);
return max;
}


反思:

两个数比较大小,应该用Math.max(A,B);

多考虑 for each 循环

仅仅有一个 if else 的话,尽量用这种形式。简洁

哎,很简单一道题,但也可以看到和别人的差距。加油吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode