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