LeetCode Algorithm 540. 有序数组中的单一元素

Posted Alex_996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 540. 有序数组中的单一元素相关的知识,希望对你有一定的参考价值。

题目链接:540. 有序数组中的单一元素

Ideas

算法:位运算 / 二分
数据结构:无
思路:相同的两个数异或等于0。/ 偶数与1进行异或结果为原来偶数加一后的奇数,奇数与1进行异或结果为原来的奇数减一后的偶数。

Code

C++

class Solution 
public:
    int singleNonDuplicate(vector<int>& nums) 
        int middle, left = 0, right = nums.size() - 1;
        while (left < right) 
            middle = int((right - left) >> 1) + left;
            if (nums[middle] == nums[middle ^ 1]) 
                left = middle + 1;
             else 
                right = middle;
            
        
        return nums[left];
    
;

Python

class Solution:
    def singleNonDuplicate(self, nums: List[int]) -> int:
        ans = 0
        for num in nums:
            ans ^= num
        return ans

以上是关于LeetCode Algorithm 540. 有序数组中的单一元素的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Algorithm 540. 有序数组中的单一元素

Leetcode 540.??????????????????????????????

[JavaScript 刷题] 二分搜索 - 有序数组的 Single Element,Leetcode 540

Leetcode 540. Single Element in a Sorted Array

Leetcode 540. Single Element in a Sorted Array

Leetcode 540. Single Element in a Sorted Array