剑指offer -- 旋转数组最小值
来源:互联网 发布:苹果windows怎么截图 编辑:程序博客网 时间:2024/06/05 07:37
问题描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.
public class RotateMin {public static void main(String[] args) throws Exception {//int[] arr = {3,4,5,1,2};int[] arr = {1,1,1,0,1};int minVal = minInRotate(arr);System.out.println(minVal);}private static int minInRotate(int[] arr) throws Exception {if(arr == null || arr.length <=0){throw new Exception("无效参数");}int start = 0;int end = arr.length-1;int middle = start;if(arr[start]>=arr[end]){while(start<end){if(start==end-1){middle = end;break;}middle = (start+end)/2;if(arr[start]==arr[end] && arr[start]==arr[middle]){return minInOrder(arr,start,end);}if(arr[middle]>=arr[start]){start = middle;}else if(arr[middle]<=arr[end]){end = middle;}}}return arr[middle];}private static int minInOrder(int[] arr, int start, int end) {int result = arr[start];for(int i=1;i<arr.length;i++){if(result>arr[i]){result = arr[i];}}return result;}}
阅读全文
0 0
- 剑指offer -- 旋转数组最小值
- 【剑指offer】旋转数组的最小值
- 剑指offer之旋转数组中的最小值
- [剑指offer]旋转数组的最小值
- 剑指offer(5) 旋转数组中的最小值
- 【剑指offer】旋转数组的最小值
- 【剑指offer】旋转数组的最小值
- 【剑指offer之旋转数组的最小值】
- 剑指offer:求一个旋转数组中的最小值
- 【剑指offer】面试题8:旋转数组中的最小值
- 剑指offer 面试题8 输出旋转数组最小值
- LintCode-剑指Offer-(159)寻找旋转排序数组中的最小值
- LintCode-剑指Offer-(28)寻找旋转排序数组中的最小值
- 剑指offer系列之六:旋转数组的最小值
- 剑指offer——旋转数组的最小值
- 剑指offer:(6)查找和排序:旋转数组中的最小值
- 每日AC-剑指Offer -旋转数组查找最小值
- 【剑指offer】题8:旋转数组的最小值
- java程序员面试宝典题目<二>
- jQuery appendTo() 方法
- Window和WindowManager(一)
- PAT (Advanced Level) Practise 1054 The Dominant Color (20)
- 在ArcGIS中可以存储什么数据类型
- 剑指offer -- 旋转数组最小值
- Android去除自带的标题栏
- openssl、qca、qca-ossl
- 实体字符
- 什么是机器学习
- 使用cgdb调试用户态程序
- 远程服务Services
- GoogLenet解读
- RegExp