classSolution{publicList<Integer>findDisappearedNumbers(int[] nums){List<Integer> ans =newArrayList<>();int len = nums.length;// 使用第 n - 1位来判断是否出现过for(int i =0; i < len; i++){// 让对应的存储位置的值 + n// 负数也行,不过会慢一点,总归就是变成一个不在【1,n】内,同时可以取得原来值的值
nums[(nums[i]-1)% len]+= len;}for(int i =0; i < len; i++){if(nums[i]<= len){
ans.add(i +1);}}return ans;}}
无注释版
classSolution{publicList<Integer>findDisappearedNumbers(int[] nums){List<Integer> ans =newArrayList<>();for(int num : nums){
nums[(num -1)% nums.length]+= nums.length;}for(int i =0; i < nums.length; i++){if(nums[i]<= nums.length){
ans.add(i +1);}}return ans;}}