Leetcode | 33. Search in Rotated Sorted Array
来源:互联网 发布:java 微信支付api 编辑:程序博客网 时间:2024/06/15 10:29
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
解法一:顺序检索,3ms AC,属于最快的那一波解法,想不到想不到。。。。
class Solution {public: int search(vector<int>& nums, int target) { if(nums.size() == 0) return -1; for(int i=0;i<nums.size();i++) { if(nums[i] == target) return i; } return -1; }};
解法二:二分检索,先找出最小值(也就是翻转的那个下标),然后根据target的大小,分两段二分检索。9ms,震惊,居然很慢。。。
class Solution {public: int search(vector<int>& nums, int target) { int len = nums.size(); int left = 0, right = len-1; if(nums.size() == 0) return -1; while(left < right) { int mid = (left+right)/2; if(nums[mid] > nums[right]) left = mid+1; else right = mid; } //当 left=right 时,找到了最小值,也就是翻转的位置 int rotate = left; cout<<rotate<<endl; if(target > nums[len-1])//在左半部分 { left = 0; right = rotate-1; } else { left = rotate; right = len-1; } while(left <= right) //处理只有一个元素的情况 { int mid = (left+right)/2; if(nums[mid] == target) return mid; else if(nums[mid] > target) right = mid-1; else left = mid+1; } return -1; }};
阅读全文
1 0
- [LeetCode]33.Search in Rotated Sorted Array
- LeetCode --- 33. Search in Rotated Sorted Array
- LeetCode 33.Search in Rotated Sorted Array
- [Leetcode] 33. Search in Rotated Sorted Array
- Leetcode-33.Search in Rotated Sorted Array.
- [leetcode] 33. Search in Rotated Sorted Array
- Leetcode 33. Search in Rotated Sorted Array
- [LeetCode]33. Search in Rotated Sorted Array
- leetcode 33. Search in Rotated Sorted Array
- LeetCode *** 33. Search in Rotated Sorted Array
- LeetCode - 33. Search in Rotated Sorted Array
- LeetCode 33. Search in Rotated Sorted Array
- leetcode 33. Search in Rotated Sorted Array
- leetcode 33.Search in Rotated Sorted Array
- [leetcode]33. Search in Rotated Sorted Array
- leetcode 33. Search in Rotated Sorted Array
- leetcode 33. Search in Rotated Sorted Array
- LeetCode-33.Search in Rotated Sorted Array
- 文件数据提取
- 关于char *和char [] 的不同
- #416 Div.2 A. Vladik and Courtesy-water
- Lintcode59 3Sum Closest solution 题解
- 四元数(Quaternion)和旋转
- Leetcode | 33. Search in Rotated Sorted Array
- LeetCode 303. Range Sum Query
- Lintcode60 Search Insert Position 题解
- ldap db2 升级问题记录
- Ubuntu 下 Error: Could not find or load main class xxx(2017/05/27)
- HTML巩固练习之CSS选择器基础
- 九九乘法表
- android 点餐系统/点餐app 源码 示例
- USACO-Section1.1 Greedy Gift Givers