Search in Rotated Sorted Array
来源:互联网 发布:php开源站群管理系统 编辑:程序博客网 时间:2024/05/21 13:50
**Suppose a sorted array 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.
Subscribe to see which companies asked this question
**
C++
class Solution {public: int search(vector<int>& nums, int target) { int first = 0; int last = nums.size(); while(first != last) { const int mid = first + (last - first) / 2; if(nums[mid] == target) return mid; if(nums[first] <= nums[mid]) { if(nums[first] <= target && target < nums[mid]) last = mid; else first = mid + 1; } else { if(nums[last-1] >= target && target > nums[mid]) first = mid + 1; else last = mid; } } return -1; }};
Java
public class Solution { public int search(int[] nums, int target) { int first = 0; int last = nums.length; while(first != last) { int mid = first + (last - first) / 2; if(nums[mid] == target) return mid; if(nums[first] <= nums[mid]) { if(nums[first] <= target && target < nums[mid]) last = mid; else first = mid + 1; } else { if(nums[last-1] >= target && target > nums[mid]) first = mid + 1; else last = mid; } } return -1; }}
Python
class Solution(object): def search(self, nums, target): """ :type nums: List[int] :type target: int :rtype: int """ first = 0 last = len(nums) while(first != last): mid = first + (last - first) / 2; if(nums[mid] == target): return mid if(nums[mid] >= nums[first]): if(nums[first] <= target and target < nums[mid]): last = mid else: first = mid + 1 else: if(nums[mid] < target and target <= nums[last-1]): first = mid + 1 else: last = mid return -1
0 0
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- Search in Rotated Sorted Array
- java设计模式进阶_memento
- websocket协议
- 科目二科目三中关于离合器的技巧集合
- Android项目持续集成之单元测试及代码覆盖率
- View requires API level 14 (current min is 9): <GridLayout>
- Search in Rotated Sorted Array
- 数位dp windy数
- Android Zxing 二维码扫码性能优化
- iOS滚珠菜单动效
- 智障租车(JAVA小项目)
- leetcode :Binary Search: Guess Number Higher or Lower(374)
- 如何逐步匹配多幅点云(1)
- hadoop节点重启步骤
- mysql用union创建视图报错1064 解决办法