540. Single Element in a Sorted Array

Posted mengchunchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了540. Single Element in a Sorted Array相关的知识,希望对你有一定的参考价值。

Given a sorted array consisting of only integers where every element appears twice except for one element which appears once. Find this single element that appears only once.

Example 1:

Input: [1,1,2,3,3,4,4,8,8]
Output: 2

 

Example 2:

Input: [3,3,7,7,10,11,11]
Output: 10

 

Note: Your solution should run in O(log n) time and O(1) space.

 

一个有序数组只有一个数不出现两次,找出这个数。要求以 O(logN) 时间复杂度进行求解。

 

C++:

 1 class Solution {
 2 public:
 3     int singleNonDuplicate(vector<int>& nums) {
 4         int left = 0 ;
 5         int right = nums.size() - 1 ;
 6         while(left < right){
 7             int mid = left + (right - left) / 2 ;
 8             if (mid%2 == 1){
 9                 mid-- ;
10             }
11             if (nums[mid] == nums[mid+1]){
12                 left = mid + 2 ;
13             }else{
14                 right = mid ;
15             }
16         }
17         return nums[left] ;
18     }
19 };

 

以上是关于540. Single Element in a Sorted Array的主要内容,如果未能解决你的问题,请参考以下文章

540. Single Element in a Sorted Array

540. Single Element in a Sorted Array

540. Single Element in a Sorted Array(LeetCode)

[LeetCode] 540. Single Element in a Sorted Array

LeetCode.540.Single Element in a Sorted Array

每日一题- Leetcode 540. Single Element in a Sorted Array