首页 > 其他 > 详细

540. Single Element in a Sorted Array

时间:2019-01-29 13:33:09      阅读:153      评论:0      收藏:0      [点我收藏+]

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

原文:https://www.cnblogs.com/mengchunchen/p/10333520.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!