Search in Rotated Sorted Array II
来源:互联网 发布:顾比均线源码带买卖点 编辑:程序博客网 时间:2024/04/30 07: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.
思路:binary search。主要是判断哪个区间是有序的,然后判断target在不在其中,不在就搜索另外一半。如果有重复的话,也就是nums[start] == nums[mid] == nums[end]这种情况需要搜索两边的区间了,一边如果没有,则搜另外一边。这样子的话,用recursion写比较方便。刚尝试用while,不怎么好写这种情况。
public class Solution { public boolean search(int[] nums, int target) { if(nums == null || nums.length == 0) return false; return find(nums, target, 0, nums.length-1) != -1; } public int find(int[] nums, int target, int start, int end) { if(start>end) return -1; int mid = start+(end-start)/2; if(nums[mid] == target){ return mid; } if(nums[mid] > nums[end]) { // left side is sorted; if(nums[start]<=target && target < nums[mid]) { return find(nums, target, start, mid-1); } else { return find(nums, target, mid+1, end); } } else if(nums[mid] < nums[end]) { // right side is sorted; if(nums[mid] < target && target <= nums[end]){ return find(nums, target, mid+1, end); } else { return find(nums, target, start, mid-1); } } else { // nums[mid] == nums[end]; int index = find(nums, target, start, mid-1); if( index == -1){ return find(nums, target, mid+1, end); } else { return index; } } }}
0 0
- LeetCode: Search in Rotated Sorted Array II
- 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
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- [LeetCode]Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- [leetcode] Search in Rotated Sorted Array II
- LeetCode-Search in Rotated Sorted Array II
- Search in Rotated Sorted Array II
- LeetCode - Search in Rotated Sorted Array II
- 【Leetcode】Search in Rotated Sorted Array II
- ArcGIS Server10.1系列文章——发布服务的方法
- 关于Xcode会找不到真机设备
- c++ list 自定义排序
- lua中的点、冒号与self
- hadoop学习3-MapReduce的集群安装与部署
- Search in Rotated Sorted Array II
- 《JSP实用教程(第2版)/耿祥义》错误之tomcat虚拟服务目录
- Java TCP/IP字节流在本地进行数据传输测试
- JQ插件第四十九:图片滑动轮播
- NYOJ85 有趣的数
- struct ethhdr结构体详解
- jboss-eap-6.3集成OracleDS和MySqlDS配置
- 第十五周项目三 在OJ上玩指针(2)
- linux SIGBUS 总线错误