448. 找到所有数组中消失的数字

2021-10-15  本文已影响0人  justonemoretry
image.png

解法

class Solution {
    public List<Integer> findDisappearedNumbers(int[] nums) {
        int n = nums.length;
        // 节省空间,原数组上操作,有数据的对应位置都加上n
        for (int i = 0; i < n; i++) {
            int a = (nums[i] - 1) % n;
            nums[a] += n;
        }
        
        List<Integer> res = new ArrayList<>();
        for (int j = 0; j < n; j++) {
            // 小于等于n,说明位置上没有数据,缺少值
            if (nums[j] <= n) {
                res.add(j + 1);
            }
        }
        return res;                                                    
    }
}
上一篇 下一篇

猜你喜欢

热点阅读