zoukankan      html  css  js  c++  java
  • 剑指offer-面试题11-旋转数组的最小数字-二分法

    /*
    题目:
    	把一个数组最开始的若干个元素搬到数组末尾,我们称之为数组的旋转。
    	输入一个递增排序的数组的旋转,输出旋转数组中的最小元素。
    */
    /*
    思路:
    	采用二分的方法,旋转数组实质上是上左半部分为递减数组,右半部分为递增数组。
    	取中间元素mid,若大于等于最右端的元素,则说明mid在左半部分,则low=mid+1;
    	若小于最右端的元素,则说明mid在右半部分,则high = mid;
    	
    */
    int minNumberInRotateArray(vector<int> rotateArray) {
        int length = rotateArray.size();
        if( length== 0 ) return 0;
        int low = 0, high = length - 1, mid = 0;
        while(low < high){
            mid = low + ((high - low) >> 2);
            if(rotateArray[mid] >= rotateArray[high]){
                low = mid + 1;
            }else if(rotateArray[mid] < rotateArray[high]){
                high = mid;
            }
        }
        return rotateArray[low];
    }
    

       

  • 相关阅读:
    mysqllog
    清理:db上面的过期的binlog,释放磁盘空间。 (转)
    linux下shell命令trap
    mvc
    uci随笔
    luci 随笔
    shell脚本 整数比较
    lua学习
    OPENWRT make menuconfig错误之一
    openwrt 中make的使用
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/11831696.html
Copyright © 2011-2022 走看看