Leetcode102: Search in Rotated Sorted Array
2015-10-17 20:53
435 查看
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
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.
如果中间元素大于首部元素,那么表明查找区间左半部分是有序的,然后再根据target是否在有序的一部分来决定接下来查找的方向
如果中间元素小于首部元素,那么查找区间有半部分是有序的,然后再根据target是否在有序的一部分来决定接下来查找的方向
(i.e.,
0 1 2 4 5 6 7might 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.
如果中间元素大于首部元素,那么表明查找区间左半部分是有序的,然后再根据target是否在有序的一部分来决定接下来查找的方向
如果中间元素小于首部元素,那么查找区间有半部分是有序的,然后再根据target是否在有序的一部分来决定接下来查找的方向
class Solution { public: int search(vector<int>& nums, int target) { int n = nums.size(); if(n==0) return -1; int l = 0; int r = n-1; while(l<=r) { int mid = (l+r)/2; if(nums[mid] == target) return mid; if(nums[l] <= nums[mid]) { if(nums[l]<=target && target<nums[mid]) r = mid-1; else l = mid+1; } else { if(nums[mid]<target && target<=nums[r]) l = mid+1; else r = mid-1; } } return -1; } };
相关文章推荐
- jQuery源码分析之width,height,innerWidth,innerHieght,outerWidth,outerHeight函数
- NYoj-Binary String Matching-KMP算法
- 验证2
- python例子-关于时间time模块
- N点主机管理系统的重装步骤(图文)
- Automatic visual detection of Human behavior:A review from 2000 to 2014
- 编码解码及其原理(Base64/Hex/URLEncoding)
- 《需求工程-软件建模与分析》读书笔记2
- [Albert的专栏]★★objective-c面向对象之——类的继承
- 练手的小项目(1)——智能聊天机器人
- PHP学习路径
- 复合运算符
- 线性表---单链表(创建、找中间节点、删除头元素)
- 关于单位申请进京指标
- Apache Mod/Filter Development
- CRLF和LF
- 黑马程序员——高新技术--枚举
- Android事件分发机制总结
- 用c++输出1000-2000之间的闰年
- lara with tp