zoukankan      html  css  js  c++  java
  • 剑指offer-旋转数组的最小数字

    题目描述

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。
     
     1 public int minNumberInRotateArray(int [] array) {//my
     2         int result = 0;
     3         if(array.length==1){
     4             result = array[0];
     5         }
     6         for (int i = 1; i < array.length; i++) {
     7             if(array[i-1] > array[i]){
     8                 result=array[i];
     9                 break;
    10             }
    11         }
    12         return result;
    13     }

    二分

        public int minNumberInRotateArray(int [] array) {//my
            int result = array[0];
            int left = 0;
            int right =array.length -1;
            while(left<=right){
                int mid = (left+right)/2;
                if(mid>0&&array[mid-1]>array[mid]){
                    result = array[mid];
                    break;
                }
                else if(array[mid]>array[0]){
                    left = mid+1;
                }
                else{
                    right =mid -1;
                }
            }
            return result;
        }
  • 相关阅读:
    HTML特效代码大全
    PHP网站加网站访问量统计
    定时显示隐藏
    加入收藏 设为首页
    IP和归属地
    手机站的拨打电话和发短信
    Shell运算
    Shell命令替换与变量替换
    $* 和 $@ 的区别
    Shell特殊变量列表
  • 原文地址:https://www.cnblogs.com/zhacai/p/10690702.html
Copyright © 2011-2022 走看看