154. Find Minimum in Rotated Sorted Array II
来源:互联网 发布:广东干部网络培训登陆 编辑:程序博客网 时间:2024/05/22 00:51
题目:Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7
might become 4 5 6 7 0 1 2
).
Find the minimum element.The array may contain duplicates.
此题是I的扩展,有序数组部分元素置于数组后半部,数字可能重复,例如【1,1,1,0,1】,考虑使用二分查找的变形
- 如果mid>=left,说明min在mid的右边(包含mid)→_→
- 如果mid<=right,说明min在mid的左边(包含mid)☜
特例:【1,1,1,0,1】与【1,0,1,1,1】left=mid=right这种情况,无法使用上述条件寻找,只能通过遍历来寻找最小值
public class Solution { public int findMin(int[] nums) { if(nums == null || nums.length==0) return -1; int l=0,r=nums.length-1,mid=(l+r)/2; while(l<=r && l>=0 && r<nums.length){ if(r-l ==1 || nums[l] < nums[r]) return Math.min(nums[l], nums[r]); //终止 //如果存在[1,1,1,0,1]这种情况不能用二分法判断,只能遍历 if(nums[mid] == nums[l] && nums[mid] == nums[r]){//必须放在下面两个if条件之前 int min=nums[0]; for(int i=l;i<=r;i++) min=Math.min(min, nums[i]); return min; } if(nums[mid] >= nums[l]) l=mid; if(nums[mid] <= nums[r]) r=mid; mid=(l+r)/2; } return nums[mid]; }}
0 0
- 154. Find Minimum in Rotated Sorted Array II & 153. Find Minimum in Rotated Sorted Array
- 153. Find Minimum in Rotated Sorted Array && 154. Find Minimum in Rotated Sorted Array II
- leetCode -Array 154. Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Find Minimum in Rotated Sorted Array II
- Java设计模式——策略模式
- .net自定义错误页
- Oracle 下载(Oracle10g下载地址--多平台下的32位和64位 )
- Vim命令合集
- LinuxC/C++编程(7)—守护进程
- 154. Find Minimum in Rotated Sorted Array II
- iOS swift 创建各种变量,常量,字典,数组等
- Unix & Linux笔记(8)
- editplus+phpCB 简单的PHP代码格式化工具
- Android学习系列(24)--App列表之下拉刷新
- ckeditor 去除自带的<p>标签
- 交换两段连续(不连续)内存
- Html5刮刮卡效果(移动端、PC端)
- acm_猴子与箱子