leetcode 154. Find Minimum in Rotated Sorted Array II(二分+递归)
来源:互联网 发布:默纳克刷机软件 编辑:程序博客网 时间:2024/06/05 19:44
题意:
给你一个可能存在重复元素的数组,刚开始是递增的,但是后来经过了左移或者右移。让你用二分求最小值。
思路:
之前的Find Minimum in Rotated Sorted Array是不含重复元素的,只需判断mid值是否大于r值即可确定下一个二分区间。
如果含重复元素,但是左边界和右边界不相等时,同样可以只需判断mid值是否大于r值即可确定下一个二分区间。
但是当左边界和右边界相等时,最小值可能存在左区间也可能存在右区间中,所以需要分别求出左区间和右区间的最小值然后进行比较。可以递归解决。
java代码:
class Solution { public int findMin(int[] nums) { int l = 0; int r = nums.length-1; return Solution.dfs(nums,l,r); } public static int dfs(int[] nums,int l,int r){ if(l==r){ return nums[l]; } if(nums[l]<nums[r]){ return nums[l]; } if(nums[l]>nums[r]){ return Solution.bisearch(nums,l,r); } int mid = (l+r)>>1; return Math.min(Solution.dfs(nums,l,mid),Solution.dfs(nums,mid+1,r)); } public static int bisearch(int[] nums,int l,int r){ while(l<r){ int mid = (l+r)>>1; if(nums[mid]>nums[r]){ l = mid+1; } else{ r= mid; } } return nums[l]; }}
阅读全文
1 0
- leetcode 154. Find Minimum in Rotated Sorted Array II(二分+递归)
- leetCode -Array 154. Find Minimum in Rotated Sorted Array II
- [LeetCode]154.Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- [leetcode] 154.Find Minimum in Rotated Sorted Array II
- [LeetCode]154. Find Minimum in Rotated Sorted Array II
- 【leetcode】154. Find Minimum in Rotated Sorted Array II
- leetcode.154. Find Minimum in Rotated Sorted Array II
- [leetcode] 154. Find Minimum in Rotated Sorted Array II
- leetcode:154. Find Minimum in Rotated Sorted Array II
- [LeetCode] 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II (Hard)
- LeetCode:154. Find Minimum in Rotated Sorted Array II
- leetcode 154. Find Minimum in Rotated Sorted Array II
- LeetCode 154. Find Minimum in Rotated Sorted Array II
- 【LeetCode】154. Find Minimum in Rotated Sorted Array II
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 关于XE8开发安卓手机硬件
- 自定义Quartz超实用工具类
- c++之友元类
- 使用ajax后获取元素的方法以及事件委托的使用
- leetcode 154. Find Minimum in Rotated Sorted Array II(二分+递归)
- js 表格查询+升序降序+敏感词
- 在pcl用例中获取kinect深度图像数据,并用opencv显示出来
- LeetCode--Minimum Path Sum (最小路径和)Python
- C++ 递归实现简单语言解释器
- “懂你”才叫人工智能 根本不用担心AI抢你饭碗
- 表单只读不能编辑
- PHP 大神的十大优良习惯
- 经典EL表达式和Jquery实现表格表单常用操作