有序数组中的单一元素

题解方法

  • 二分查找

二分查找

  • 判断当前位置的数是否唯一
  • 若当前位置为奇数,则比较当前位置和前一位置的数是否相等,反之亦然
  • 若相等则唯一数在右侧(含),反之在左侧(不含)

核心代码

1
2
3
4
5
6
7
8
public boolean searchSingle(int idx) {
if (idx % 2 == 1) {
return nums[idx] == nums[idx - 1];
}
else {
return nums[idx] == nums[idx + 1];
}
}

题目来源

540. 有序数组中的单一元素 - 力扣(LeetCode) (leetcode-cn.com)
w