LeetCode Find Minimum in Rotated Sorted Array
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.
You may assume no duplicate exists in the array.
思路分析:这题主要考察二分查找,在Rotated Sorted Array中找最小和Search in Rotated Sorted Array类似,只不过此时需要不断把最左边的元素A[l]与A[m]比较
1. 如果A[m] < A[l] 那么应该在左边找,更新右边的边界right;
2.如果A[m] > A[l] 那么应该在右边找,更新左边的边界left;
3.如果A[m]= A[l] ,l++;
上述规律可以通过举例子很快发现,这样可以每次减少一半元素,得到O(logN)的算法。注意这题A[m] = A[l] 也有可能发生,虽然没有重复元素,但是m和l可能指向同一个元素,比如当这个数组只有两个元素的时候。如果A[m]= A[l] ,可以执行l++;丢掉一个“冗余元素”也不会丢掉最小值。对于Rotated Sorted Array中有冗余值的情况可以参考本题的扩展Find Minimum in Rotated Sorted Array II。
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 Find Minimum in Rotated Sorted Array相关推荐
- LeetCode Find Minimum in Rotated Sorted Array II
Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are allowed? Woul ...
- LeetCode——Find Minimum in Rotated Sorted Array II
Question Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are allo ...
- [LeetCode]Find Minimum in Rotated Sorted Array
题目描述: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 ...
- 【LeetCode】154. Find Minimum in Rotated Sorted Array II (3 solutions)
Find Minimum in Rotated Sorted Array II Follow up for "Find Minimum in Rotated Sorted Array&quo ...
- 154 Find Minimum in Rotated Sorted Array 2
这道题与 153 Find Minimum in Rotated Sorted Array 基本相同,只是有可能有重复的数字, 这样a[left] 就可能与a[mid]相同 因此就多一个可能,因此在最 ...
- Find Minimum in Rotated Sorted Array II
Description: Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are ...
- LeetCode 33. Search in Rotated Sorted Array
问题链接 LeetCode 33. Search in Rotated Sorted Array 题目解析 给定一个 "升序" 的 无重复 数组,从中寻找目标值."升序& ...
- 【leetcode】Search in Rotated Sorted Array II(middle)☆
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- leetcode 81 Search in Rotated Sorted Array II ----- java
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
最新文章
- 李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪
- 如何设计折叠样式的屏幕(类似MIGO的屏幕)
- 使用Matplotlib Numpy Pandas构想泰坦尼克号高潮
- simpledateformat格式_如何使用SimpleDateFormat?
- 经典线程同步 事件Event
- html日历框架,日历.html
- android多媒体学习笔记三___图像合成
- Java-实现简单取色器
- 使用Echarts实现中国地图,官方china.js文件
- .Net C# Newtonsoft.Json JsonSerializerSettings配置
- cpu压测 windows_小白求问怎么用AIDA64进行CPU压力测试
- 金蝶K3 Cloud免密登陆
- 工作室流量卡如何做才能不封号?
- Revit二次开发——HelloRevitApp
- python发送请求给服务器参数传递方式以及服务器响应方式
- 【洛谷题解】P1427 小鱼的数字游戏
- 2021-05-24 Nyquist图背后的信息
- excel每页都显示标题的方法
- GraphSAGE论文阅读笔记
- [HCTF 2018] WarmUp