leetcode 540. Single Element in a Sorted Array
来源:互联网 发布:z3735 ubuntu 编辑:程序博客网 时间:2024/05/13 11:54
1.题目
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.
一个有序的整型数组,除一个元素只出现一次外,其余元素均出现两次。找出这个只出现一次的元素。
要求:时间复杂度O(logn),空间复杂度O(1)
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
2.分析
时间复杂度要求O(logn),可以选用二分查找。
观察数组可以发现这样一个规律:对于数组S
在只出现一次的元素A出现之前,所有S[2*i]=S[2*i+1]
我们可以依据这一规律来判断A在当前位置的左边还是右边。
3.代码
class Solution {public: int singleNonDuplicate(vector<int>& nums) { int left = 0, right = nums.size() / 2; while (left < right) { int mid = left + (right - left) / 2; if (nums[mid * 2] != nums[mid * 2 + 1]) right = mid; else left = mid + 1; } return nums[left * 2]; }};
阅读全文
0 0
- LeetCode (Single Element in a Sorted Array)
- LeetCode | 540. Single Element in a Sorted Array
- {LeetCode} 540. Single Element in a Sorted Array
- LeetCode 540. Single Element in a Sorted Array
- LeetCode 540. Single Element in a Sorted Array
- [LeetCode]540. Single Element in a Sorted Array
- leetcode 540. Single Element in a Sorted Array
- [LeetCode]540. Single Element in a Sorted Array
- leetcode 540. Single Element in a Sorted Array
- leetcode 540. Single Element in a Sorted Array 题解
- leetcode 540. Single Element in a Sorted Array
- leetcode 540. Single Element in a Sorted Array
- 【LeetCode】540. Single Element in a Sorted Array
- [LeetCode] 540. Single Element in a Sorted Array
- LeetCode 540. Single Element in a Sorted Array
- leetcode 540. Single Element in a Sorted Array
- [Leetcode] 540. Single Element in a Sorted Array 解题报告
- 540. Single Element in a Sorted Array
- EL表达式详细教程
- React Native 开发环境搭建(一)学习
- leetcode 475. Heaters
- CSS3图片水平居中常用方法
- Ajax缓存原理
- leetcode 540. Single Element in a Sorted Array
- NSRunLoop 概述和原理
- LightOJ
- 用python3.5逛今日头条
- 【机器学习实战】第10章 K-Means(均值)聚类算法
- Bmob导入DEMO的各种辛酸史(下)
- linux 怎么把^M去掉
- 多线程/并发笔记:Java并发编程之this逃逸问题
- Android Parcelable的使用