[leetcode][search] Search in Rotated Sorted Array II
来源:互联网 发布:手机怎样申请淘宝小号 编辑:程序博客网 时间:2024/09/21 06:32
题目:
Follow up for "Search in Rotated Sorted Array":
What if duplicates are allowed?
Would this affect the run-time complexity? How and why?
Write a function to determine if a given target is in the array.
class Solution {public: bool search(vector<int>& nums, int target) { if(nums.empty()) return -1; return searchCore(nums, 0, nums.size()-1, target); }private: bool searchCore(vector<int>& nums, int start, int end, int target){ if(start > end) return false; if(start == end) return nums[start] == target ? true : false; int mid = (start + end) >> 1; if(nums[mid] == target) return true; if(nums[start] >= nums[end]){//当首位元素相等时无法判读start和end之间是否存在pivot,所以两边都得查找 int ret = searchCore(nums, start, mid-1, target); if(false == ret){ ret = searchCore(nums, mid+1, end, target); } return ret; } else{ if(nums[mid] > target) return searchCore(nums, start, mid-1, target); else return searchCore(nums, mid+1, end, target); } }};
注:如果数组中存在重复值,会影响算法的时间复杂度,O(logn)->O(n)
因为两端点值相等时,无法判断target在哪边,所以两边都得找
0 0
- LeetCode: Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- LeetCode : Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- [Leetcode] Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- LeetCode-Search in Rotated Sorted Array II
- LeetCode - Search in Rotated Sorted Array II
- 【Leetcode】Search in Rotated Sorted Array II
- Leetcode: Search in Rotated Sorted Array II
- 【leetcode】Search in Rotated Sorted Array II
- leetcode Search in Rotated Sorted Array II
- Leetcode: Search in Rotated Sorted Array II
- [LeetCode] Search in Rotated Sorted Array II
- LeetCode | Search in Rotated Sorted Array II
- LeetCode Search in Rotated Sorted Array II
- 【啊哈!算法】算法11:堆——神奇的优先队列(上)
- 堆排序
- 最近一直是web前段,没什么意思,所以就不发资料了
- The xxx collides with a package/type
- 无反和单反
- [leetcode][search] Search in Rotated Sorted Array II
- 【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)
- shell脚本执行的几种方式
- 黑马程序员----常见对象
- 详解JavaScript模块化开发
- 第十一周阅读程序(3)
- 鸡啄米vc++2010系列23(列表框控件ListBox)
- Html5在Android开发中的应用
- Java中LinkedList和ArrayList的区别