【Leetcode】旋转数组最小值
来源:互联网 发布:tcp编程用什么语言 编辑:程序博客网 时间:2024/06/07 01:24
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/description/
有一个递增的旋转数组,找出最小值。
个人习惯写二分算法时,while的条件为low<=high,加等号。这是第一道遇到的不能加等号的题目。
需要首先处理特殊情况,就是本身有序的情况,如果a[low] <= a[high],说明本身有序,直接返回a[low]即可,否则二分查找。
当a[m]>a[high]时,说明m在左侧,这时铁定需要找[m+1,high],否则,需要找[low, m],注意一个是m+1,一个是m,最后返回的是a[low],找特值判断即可。
代码:
public int findMin(int[] nums) { if(nums[0] <= nums[nums.length - 1]) return nums[0]; int low = 0, high = nums.length - 1; while(low < high){ int m = (low + high) / 2; if(nums[m] > nums[high]) low = m + 1; else high = m; } return nums[low]; }
阅读全文
0 0
- 【Leetcode】旋转数组最小值
- 旋转数组找最小值
- 旋转数组最小值
- 旋转数组的最小值
- 旋转数组求最小值
- 旋转数组中的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组最小值
- 旋转数组找最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组的最小值
- 旋转数组最小值
- 旋转数组的最小值
- 旋转数组中的最小值
- 旋转数组的最小值
- 旋转数组求最小值
- Compile Swift 4.0-dev on CentOS7.2
- 详解Python中的多线程编程
- A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)
- 使用pgAdmin3 调试存储过程
- 营销型企业网站建设内链优化怎么做?
- 【Leetcode】旋转数组最小值
- 机器学习基础知识-神经网络与深度学习学习笔记(二)
- iOS NSData与long long的互转
- CSS选择器总结
- Python中的id函数到底是什么?
- SSM-Mybatis的SQL(增删改查)语句
- nginx lua 获取当前所有进程号
- Numpy学习笔记——便捷函数
- Android中configure: error: C compiler cannot create executables解决方法