题目:给你一个含 n个整数的数组 nums,其中 nums[i]在区间 [1, n]内。请你找出所有在 [1, n] 范围内但没有出现在 nums中的数字,并以数组的形式返回结果。
示例 1:
输入:nums = [4,3,2,7,8,2,3,1]
输出:[5,6]
🙇♂️感想:这道题与上一道268题差不多,只不过上一题只需要找到一个,这一题是找出所有。
🙇♂️ 解题思路:这道题要找出所有肯定要遍历完整个数组。而且最大值也只能是数组的长度, 并且在数组内数值也可能重复,如[1,1], 输出2这种。最理想的状态就是1→n。所有只需要从1开始遍历数组的长度,判断数组中是否存在当前遍历到的值,不存在则加入结果集即可
function findDisappearedNumbers(nums: number[]): number[] {
let result: number[] = []
let length: number = nums.length
for (let i = 1; i <= length; i++) {
if (!nums.includes(i)) {
result.push(i)
}
}
return result
};