Leetcode hot100 找到所有数组中消失的数字
法1创建一个标记数组遍历数组对于出现过的数字把让数字作为下标标记为1.再遍历标记数组数值为0的对应的下标就是答案。时间复杂度遍历两遍数组O2n空间复杂度因为题目说了返回数组不算占空间那就只用了标记数组的O(n)class Solution { public ListInteger findDisappearedNumbers(int[] nums) { int n nums.length; //1.出现过的用1去标记 int[] mark new int[n1]; for(int i0; in; i){ mark[nums[i]]1; } //2.再遍历一遍找没用1标记的 ListInteger res new ArrayList(); for(int i1; in; i){ if(mark[i]0){ res.add(i); } } //返回ArrayList也算数组啦 return res; } }法2进阶emmmm看了官方解法以后我发现他说的时间复杂度O(n)其实指的是n级别遍历两遍时间复杂度为O(2n)也算。第一遍遍历把num[i]为索引的位置上的数变负的。第二遍遍历num[i]谁是正数对应下标就是没出现过