Leetcode之二分法专题-154. 寻找旋转排序数组中的最小值 II(Find Minimum in Rotated Sorted Array II)


假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

请找出其中最小的元素。

注意数组中可能存在重复的元素。

示例 1:

输入: [1,3,5]
输出: 1

示例 2:

输入: [2,2,2,0,1]
输出: 0

153题很像,只不过这题会有重复的数字,这种情况用153的代码会报错:3 3 1 3
这个样例是从1和3的节点中间旋转的,那我们只需要在153的代码上作出如下改动即可:
如果nums[mid]==nums[R] 就R--,因为他们两个一样,所以右边的那个直接省略掉。
class Solution {
public int findMin(int[] nums) {
if(nums.length==0 || nums==null) return 0;
int L = 0;
int R = nums.length - 1;
while(L<R){
int mid = (L+R)>>>1;
if(nums[mid]>nums[R]){
L = mid+1;
}else if(nums[mid]<nums[R]){
R = mid;
}else{
R--;
}
}
return nums[L];
}
}
												

最新文章

  1. robotframework,selenium启动不了打不开浏览器的问题访问不了网页
  2. Java 类库和常用类库
  3. August 30th 2016 Week 36th Tuesday
  4. [Spring] - Spring + Hibernate
  5. PHP函数——parse_ini_file() 函数
  6. 离线安装PM2
  7. Temporary Segments: What Happens When a Sort Occurs (文档 ID 102339.1)
  8. 【阿里云产品公测】阿里云OpenSearch初次使用评测
  9. 20141201--JS Window
  10. mongodb 的安装历程
  11. 食品药检所LIMS需求分析说明书
  12. 网络基础三 ARP 地址分类 NAT技术
  13. js中的引用类型和基本类型
  14. 解决浏览器兼容ES6特性
  15. Linux下配置nfs并远程挂载实战探讨
  16. JNI 开发基础篇:Android开发中os文件的探索
  17. laravel 5 : Class &#39;input&#39; not found
  18. CSU 1859 Gone Fishing(贪心)
  19. 『cs231n』通过代码理解风格迁移
  20. Javascript之数组遍历

热门文章

  1. spark streaming 接收kafka消息之五 -- spark streaming 和 kafka 的对接总结
  2. 有关vs2010将c++生成exe文件时出现LINK : fatal error LNK1123: 转换到 COFF 期间失败和环境变量问题
  3. go interface衍生的插件化处理
  4. 有容云-PPT | 当微服务遇见容器
  5. Wtm携手LayUI -- .netcore 开源生态我们是认真的!
  6. oracle 断电启动失败:ORA-00600: internal error code, arguments
  7. 【Java笔记】【Java核心技术卷1】chapter3 D5运算符
  8. Java——检测其他线程的状态以及启动已死亡的线程
  9. SSM框架的详细解说
  10. python环境的安装 环境变量和系统变量