用的最土的办法,将数组nums中出现过的数字用map记录下来,再遍历1~n中的所有数字,凡是未在map中出现过的即为我们要找的数字。 Java代码如下:
class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n = nums.length;List<Integer> ans = new ArrayList<>();Map<Integer,Integer> map = new HashMap<>();for(int num : nums){if(num >= 1 && num <= n){map.put(num , map.getOrDefault(num,0)+1);}}for(int i=1; i<=n; i++){if(!map.containsKey(i)){ans.add(i);}}return ans;}
}