找到所有数组中消失的数字
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。
const findDisappearedNumbers = (nums = [1,1]) => { let len = nums.length let res = [] let map = {} for(let i = 0; i < len; i++){ const v = nums[i] map[v] = true } for(let i = 1; i < len + 1; i++){ if(!map[i]){ res.push(i) } } return res }; const findDisappearedNumbers = (nums = [4,3,2,7,8,2,3,1]) => { const len = nums.length, ans = [] for (let i = 0; i < len; i++) { let num = Math.abs(nums[i]); // 注意,如只有是正数的情况我们才转负数 if (nums[num - 1] > 0) { nums[num - 1] *= -1; console.log(nums) } }; for (let i = 0; i < len; i++) { // 正数的索引加1,就是我们缺失的数了 if (nums[i] > 0) { ans.push(i + 1); }; }; return ans; };
以自己现在的努力程度,还没有资格和别人拼天赋