给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
例如:
输入: [4,1,2,1,2]
输出: 4
解题思路
- 从题意上看,会给定我们能一个只有一项不重复的数组。我们可以先取出这个数组的一项,然后在从这个数组中检索是否有这个数字。
- 如果没有这个数字的话,我们就直接将值返回。
- 如果有这个数字的话,那么我们就直接把这个数字删除,然后再次执行这个函数,采取递归的方法来判断。
代码
var singleNumber = function (nums) {
// 先取出数组的一项
var a = nums.shift(0);
// 然后在检索剩下的内容是否有这一项
if (nums.indexOf(a) === -1) {
// 没有就返回
return a;
} else {
// 有的话就删除这个数,再次执行
nums.splice(nums.indexOf(a), 1);
return singleNumber(nums)
}
};
网友评论