LeetCode Find Minimum in Rotated Sorted Array II
2015-07-27 16:25
381 查看
Follow up for "Find Minimum in Rotated Sorted Array":
What if duplicates are allowed?Would this affect the run-time complexity? How and why?Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e.,
What if duplicates are allowed?Would this affect the run-time complexity? How and why?Suppose a sorted array 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).Find the minimum element.The array may contain duplicates.思路分析:这题类似于LeetCode Find Minimum in Rotated Sorted Array ,具体解析可以参考前一篇,这题的特殊之处是数组中可以有重复元素,那么当A[m]=A[l]时,执行l++即可。此时,就只可以排除掉一个元素,而不是一半元素,最坏情况下算法时间复杂度是O(n),不再是O(logN)。AC Code:
public class Solution { public int findMin(int[] nums) { int n = nums.length; int l = 0; int r = n-1; int min = nums[0]; while(l < r){ int m = l + (r-l) / 2; if(nums[m] < nums[l]) { min = Math.min(nums[m], min); r = m; } else if(nums[m] > nums[l]){ min = Math.min(nums[l], min); l = m; } else { l++; } } min = Math.min(nums[l], min); min = Math.min(nums[r], min); return min; } }
相关文章推荐
- 【LeetCode从零单排】No189 .Rotate Array
- MVC模式的原理,它在Android中的运用。
- HDU 1015 Safecracker(DFS)
- asp.net session问题
- HTTP/1.0与HTTP/1.1之间的差别
- 启动VMware出现报错:The VMware Authorization Service is not running
- 絮叨机房精密空调的制冷剂
- vim中执行shell命令
- Cacti+Nagios完全攻略(二)整合cacti与nagios安装部署
- 求树中每个点能达到的最大距离
- 絮叨机房精密空调的制冷剂
- [转]终于找到全annotation配置springMVC的方法了(事务不失效)
- IOS开发系列--C语言之存储方式和作用域
- Android实战之 万能的接口回调
- Android TXT文件读写
- Android TXT文件读写 分类: Android 2015-07-27 16:23 13人阅读 评论(0) 收藏
- 用asp获取服务器IP和客户端IP
- poj2886 Who Gets the Most Candies?(反素数 + 线段树)
- 开源,免费的移动端触摸滑动插件------swiper介绍----淘抢购时间选择加载产品
- 电子邮件协议