旋转数组的最小数字
来源:互联网 发布:网络覆盖方案 编辑:程序博客网 时间:2024/06/06 22:45
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
public int minNumberInRotateArray(int [] array) {if(array==null||array.length==0){ return 0; } int len=array.length; int low=0; int high=len-1; if(array[low]<array[high]){//if the array is not shifted actually,e.g. {1,2,3,4,5} return array[low]; } int mid=0; while(low<=high){ mid=(low+high)/2; if(mid==low){//if there are only two elements left return array[low]<=array[high]?array[low]:array[high]; } if(array[mid]<array[mid-1]&&array[mid]<array[mid+1]) { return array[mid]; } if(array[mid]>=array[low]&&array[low]<=array[low+1]){ low=mid; }else{ high=mid; } } return array[mid];}
1 0
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- 旋转数组的最小数字
- Thread的run方法和start方法
- android面试攻略(1)
- 配置RHEL6使用CentOS6的yum源
- 由S_ISDIR学到的
- Android总结篇系列:Android Service
- 旋转数组的最小数字
- Java反射reflect学习笔记_2:反射类的构造函数
- Struts2系统学习(10)文件上传与下载案例及原理分析
- HttpClient使用详解
- MD5杂凑算法
- Java输出特定时间段特定格式时间信息
- Android View事件分发处理
- prime算法-最小生成树算法
- iOS8 自定义UITabBar (使用popToViewController导致的UITabBarButton重叠的问题)