算法分析与设计——LeetCode:33. Search in Rotated Sorted Array
2017-12-27 21:22
387 查看
题目
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(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.
class Solution { public: int search(vector<int>& nums, int target) { } };
思路
使用二分查找,有三种情况:1.mid>begin>end;2.mid<end<begin;3.begin<mid<end,即正常排序的数列。 根据不同情况选择下一次查找的begin和end。代码
class Solution { public: int search(vector<int>& nums, int target) { int end = nums.size(); if (end == 0) { return -1; } int head = 0; int index = end/2; while ((end-head) != 0 && nums[index] != target) { if (nums[head] < nums[end-1]) { while ((end-head) != 0 && nums[index] != target) { if (target > nums[index]) { head = index+1; } else { end = index; } index = (end-head)/2+head; } break; } if(nums[index] > nums[head]) { if (target > nums[index]) { head = index +1; } else { if (target >= nums[head]) { end = index; } else { head = index+1; } } } else { if (target > nums[index]) { if (target >= nums[head]) { end = index; } else { head = index+1; } } else { end = index; } } index = (end-head)/2+head; } if (target != nums[index]) { return -1; } else { return index; } } };
相关文章推荐
- 算法分析与设计——LeetCode Problem.33 Search in Rotated Sorted Array
- 算法分析与设计课程(15):【leetcode】 Find Minimum in Rotated Sorted Array
- python写算法题:leetcode: Add to List 33. Search in Rotated Sorted Array
- 【LeetCode题意分析&解答】33. Search in Rotated Sorted Array
- 第三周算法分析与设计: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 88] 33 Search in Rotated Sorted Array
- leetcode-33 Search in Rotated Sorted Array
- leetcode problem 33 -- Search in Rotated Sorted Array
- Leetcode 33, 81 Search in Rotated Sorted Array I, II
- [LeetCode] 33. Search in Rotated Sorted Array
- [Leetcode] 33. Search in Rotated Sorted Array
- Java [leetcode 33]Search in Rotated Sorted Array
- LeetCode (33)Search in Rotated Sorted Array
- LeetCode 33, Search in Rotated Sorted Array-----Binary Search
- Leetcode刷题记—— 33. Search in Rotated Sorted Array(在翻转顺序的数组里查找)
- 【leetcode】33. Search in Rotated Sorted Array【java】