情人节找单一元素?

139 阅读1分钟

有序数组中的单一元素

0214.png

贴一下代码

function singleNonDuplicate(nums: number[]): number {
    for(let i = 0 ; i < nums.length; i+=2){
        if(nums[i] !== nums[i+1]){
            return nums[i]
        }
    }
};

思路:

  • 有序数组且每个元素出现两次,找出出现一次的元素:就是说如果那个元素有重复的话,他下一个肯定等于他 num[i] === nums[i+1]
  • 遍历查找,注意一下这里的 i 不再是 i++ 了,而是 i+=2,当第一项与第二项相等时,直接去判断第三项和第四项,而不用判断第二项和第三项