剑指offer 面试题8 旋转数组的最小值 java版答案
来源:互联网 发布:淘宝找优惠券怎么赚钱 编辑:程序博客网 时间:2024/05/18 01:07
package OfferAnswer;/** * 面试题8 * 旋转数组的最小值 * @author lwk * 时间复杂度O(logn) */public class Answer08 { public static void main(String[] args) {int[]array={3,4,5,1,2}; System.out.println(findMin(array));}public static int findMin(int[] array){if(array == null || array.length == 0){System.out.println("输入的数组不合法");return -1;}//特殊情况一:未旋转 如{1,2,3,4,5}if(array[0] < array[array.length-1]){return array[0];}//特殊情况二:如{1,0,1,1,1} 前后两个元素中间元素均相等if(array[0] == array[array.length-1] && array[0] == array[(array.length-1)/2]){return orderFindMin(array);} //一般情况,第一个元素大于等于最后一个元素int first = 0;int last = array.length - 1;//当last与first相差为1时,last指向的值即为最小值while(last - first != 1){int mid = (first + last)/2;if(array[mid] >= array[first]){first = mid;}if(array[mid] <= array[last]){last = mid;}}return array[last];}public static int orderFindMin(int[] array){//先假设第一个元素为最小值int min = array[0];for (int i = 1; i < array.length; i++) {if(array[i] < min){min = array[i];}}return min;}}
0 0
- 剑指offer 面试题8 旋转数组的最小值 java版答案
- 剑指Offer:面试题8——旋转数组的最小值(java实现)
- 【剑指offer】面试题8:旋转数组中的最小值
- 剑指offer 面试题8 输出旋转数组最小值
- 剑指 offer——面试题8求旋转数组的最小值
- 面试题8:找到旋转数组的最小值(java)
- 剑指Offer面试题8(java版):旋转数组的最小数字
- 剑指offer面试题8--数组旋转
- 【剑指offer】面试题8:旋转数组的最小数字
- 剑指offer面试题8:旋转数组的最小数字
- 剑指Offer:面试题8 :旋转数组的最小数字
- 《剑指offer》面试题8旋转数组的最小数字
- 《剑指Offer》面试题8:旋转数组的最小数字
- 【剑指offer】 面试题8: 旋转数组的最小数字
- 剑指offer-面试题8:旋转数组的最小数字
- 剑指offer面试题8:旋转数组的最小数字
- 【剑指offer】面试题8:旋转数组的最小数字
- 剑指offer面试题8:旋转数组的最小数字
- codevs 1201 最小数和最大数
- 【OAuth2.0网页授权】根据access_token和openId获取用户基本信息(Senparc.Weixin.MP.dll)
- C++中类的继承访问特性
- ORB特征提取与匹配
- Easypusher接口推送RTP数据
- 剑指offer 面试题8 旋转数组的最小值 java版答案
- Android解决多个Fragment切换时布局重新实例化问题
- 多文件组织词法分析
- 初学者该如何选择编程语言呢?
- 【Android Studio安装配置教程】二、配置
- 线段树初步
- 【HDU】-1005-Number Sequence(数学,规律)
- EXCEL大批量导入2007版本的实现(100W可执行)
- 数据结构实验之图论四:迷宫探索(超详细解释)