腾讯,字节跳动等大厂面试题之力扣-260只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。
示例 :
输入: [1,2,1,3,2,5] 输出: [3,5]
解题思路
我们需要通过双层循环遍历数组,外层控制次数,内层控制比对的数,例如将数组第一项与后面每一项比较,当数组中同一个数字出现两次时就将它们删除,因此留存下来的就是只出现一次的数,当被删除后,后面的数会往前排,因此外层循环的i值需要改变 我们用flag判断是否需要改变。
代码
var singleNumber = function(nums) {
for(var i = 0 ; i < nums.length-1 ; i++){
var flag = true;
for(var j = i+1 ; j < nums.length ; j ++){
if(nums[i] === nums[j]){
nums.splice(i,1);
nums.splice(j-1,1);
flag = false
}
}
if(!flag){
--i
}
}
return nums
};