您的位置:首页 > 移动开发

【leetcode】【Easy】【448. Find All Numbers Disappeared in an Array】【正负位标记】【Array】

2017-01-18 15:06 435 查看
problem link

code:用负来标记出现过的,因为题目要求不能有extra space,复杂度为O(n),所以只能操作原数组,另外可以利用的是数组的下标。

public class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
for(int i=0;i<nums.length;i++){
nums[Math.abs(nums[i])-1]=-Math.abs(nums[Math.abs(nums[i])-1]);
}

List<Integer> res=new ArrayList<Integer>();
for(int i=0;i<nums.length;i++){
if(nums[i]>0){
res.add(i+1);
}
}

return res;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: