LintCode 每日一题 22.2.16
查找数组中没有出现的所有数字
描述:给定一个整数数组,其中1 ≤ a[i] ≤ n (n =数组的大小),一些元素出现两次,其他元素出现一次。
找到 [1,n] 中所有没有出现在此数组中的元素。
你可以在没有额外空间和O(n)运行时的情况下完成吗? 您可以认为返回的列表不计为额外空间。
js代码:
export class Solution {
/**
* findDisappearedNumbers
*
* @param nums: a list of integers
* @return: return a list of integers
*/
findDisappearedNumbers(nums) {
// write your code here
let len = nums.length
let arr = []
for(let i = 1;i<=len;i++){
if(nums.indexOf(i)==-1){
arr.push(i)
}
}
return arr
}
}
检测:
输入:
[4,3,2,7,8,2,3,1]
输出:
[5,6]
个人解题思路:
题中说查找 1~n 中没有出现的数,就可以便利 1-n 的数,然后跟测试的数组进行比较,没有找到的添加至新数组中arr,就成功了
经过检测发现好像因为代码执行过程太长导致提交失败。。。
原题出处:https://www.lintcode.com/problem/1236/