题目出处:https://leetcode.com/problems/single-element-in-a-sorted-array/
题目描述:
给定一个仅由整数组成的排序数组,其中每个元素出现两次,只有一个元素出现一次。找到这个只出现一次的元素。
Example 1:
Input: [1,1,2,3,3,4,4,8,8]
Output: 2
Example 2:
Input: [3,3,7,7,10,11,11]
Output: 10
思路:
这个题目还是很简单:我的思路就是前后相邻对比。
因为它是单个的,所以整个数组的长度肯定是奇数,而这个单个独立的元素,也一定出现在奇数下标上,所以循环的的时候就var i=0, nums[i]和nums[i+1]比就行,不用var i =1然后nums[i]和nums[i-1]比,然后每次i的增量+2,因为都是成对的出现的,需要比较的下一个下标元素出现在i+2的位置。
代码:
var singleNonDuplicate = function(nums) {
for(var i = 0;i<nums.length;i+=2){
if(nums[i] !=nums[i+1]){
return nums[i]
}
}
};