classSolution{ public List<Integer> findDisappearedNumbers(int[] nums){ int n = nums.length; List<Integer> res = new ArrayList<>(); for (int num : nums) { int index = (num - 1) % n; // 将出现的数字当做下标,并赋值 nums[index] += n; } for (int i = 0; i < n; i++) { if (nums[i] <= n) { // 因为加上了数组长度n,未出现的数则小于等于n res.add(i+1); } } return res; }
}
TypeScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14
functionfindDisappearedNumbers(nums: number[]): number[] { let n = nums.length; nums.forEach(num => { let x = (num - 1) % n; nums[x] += n; }) let res: number[] = []; for (let i = 0; i < n; i++) { if (nums[i] <= n) { res.push(i + 1); } } return res; };