题目
给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。
请你找出并返回只出现一次的那个数。
你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。
1 | 示例一: |
- 难度:Medium
思路
观察可以发现,在单一元素的前半段,偶数下标index和index+1、奇数下标index和index-1位置的元素相等,而在后半段则不然,可以根据此进行二分
这里对奇偶下标的处理,可以根据index^1得到,对于偶数就是+1,对于奇数就是-1
- 技能点:二分
代码
1 | class Solution { |