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

来源:互联网 发布:开网店哪个软件最好 编辑:程序博客网 时间:2024/06/06 00:42

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;    }}


0 0
原创粉丝点击