给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
最近在力扣里面看到的一道题,写了两种解法,其中一种在候运行时答案是正确的,但是在提交时结果不正确
先给出提交时正确的代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
let list=[2,2,1];
let singleNumber = function(nums){
for(let i=0;i<nums.length;i++){
let count=0;
for(let j=0;j<nums.length;j++){
if(nums[i]==nums[j]){
count++
}
}
if(count==1){
return nums[i]
}
}
}
console.log(singleNumber(list));
</script>
</html>
下面来给出另一种解法,拓展一下思路
let list=[2,2,1];
let singleNumber = function(nums) {
for(let i=0;i<nums.length;i++){
let iteam=list[i];
//console.log(i);
let flag=nums.indexOf(iteam,i+1);
if(flag==-1){
return iteam;
}else{
nums.splice(flag,1);
}
}
}
console.log(singleNumber(list));