leetcode 153. Find Minimum in Rotated Sorted Array
来源:互联网 发布:js 什么时候使用链表 编辑:程序博客网 时间:2024/06/05 11:58
Suppose an array sorted in ascending order 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.
这道题还算简单。public int findMin(int[] nums) {if(nums.length==1){return nums[0];}int i=0;while(i+1<nums.length&&nums[i]<nums[i+1]){i++;}if(i+1==nums.length){//i一直遍历到最后都没有找到return nums[0];}else{//i满足nums[i]>nums[i+1]return nums[i+1];}}大神想到更好的办法:二分查找。
考虑一段 子数组(start和end是索引): [start,end],可以发现如果首元素比末元素小,那么在这一段数组中,没有任何rotation。因此要求最小元素的话,我们可以直接返回该子数组的第一个元素。
如果首元素比末元素大,那么我们计算出中间的元素,将它和首元素比较。如果中间元素比首元素大,那么rotation在数组的后半段里。如果中间元素比首元素小,那么rotation在数组的前半段里。
public class Solution { public int findMin(int[] num) { if (num == null || num.length == 0) { return 0; } if (num.length == 1) { return num[0]; } int start = 0, end = num.length - 1; while (start < end) { if (num[start]<num[end]) return num[start]; int mid = (start + end) / 2; if (num[mid]>=num[start]) { start = mid+1; } else { end = mid; } } return num[start]; }}
阅读全文
0 0
- Leetcode 153. Find Minimum in Rotated Sorted Array & Leetcode 154. Find Minimum in Rotated Sorted Ar
- 153. Find Minimum in Rotated Sorted Array--Array--LeetCode--C++
- [LeetCode] Find Minimum in Rotated Sorted Array
- Leetcode: Find Minimum in Rotated Sorted Array
- leetcode :Find Minimum in Rotated Sorted Array
- LeetCode:Find Minimum in Rotated Sorted Array
- 【Leetcode】Find Minimum in Rotated Sorted Array
- LeetCode:Find Minimum in Rotated Sorted Array
- LeetCode: Find Minimum in Rotated Sorted Array
- leetcode: Find Minimum in Rotated Sorted Array
- [LeetCode] Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array -- LeetCode
- Leetcode: Find Minimum in Rotated Sorted Array
- leetcode Find Minimum in Rotated Sorted Array
- leetcode - Find Minimum in Rotated Sorted Array
- LeetCode Find Minimum in Rotated Sorted Array
- Leetcode--Find Minimum in Rotated Sorted Array
- leetcode: Find Minimum in Rotated Sorted Array
- shell demo analyse------ 1
- Rspamd配置
- github 删除提交
- Windows 下运行 go run *.go 出现 undefined
- 内部类和内部接口
- leetcode 153. Find Minimum in Rotated Sorted Array
- mipi协议中文详解
- P1195 口袋的天空(并查集+Kruskal)
- 1999-逆序排列
- sorl 6.6.0 定时更新索引
- FZU 2150 Fire Game
- 去掉ueditor默认过滤转换机制
- AVR基础
- vxWorks系统任务tJobTask的实现及使用