《劍指offer》— JavaScript(6)旋轉數組的最小數字

旋轉數組的最小數字

題目描述

  把一個數組最開始的若干個元素搬到數組的末尾,咱們稱之爲數組的旋轉。
  輸入一個非遞減排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。
  NOTE:給出的全部元素都大於0,若數組大小爲0,請返回0。數組


實現代碼

function minNumberInRotateArray(rotateArray)
{
    var len=rotateArray.length;
    if(len== 0 || !rotateArray) return 0;
    
    var low=0;
    var high=len-1;
    
    while(low<high){
         var mid=low + Math.floor((high-low)/2);
        
         if(rotateArray[mid]>rotateArray[high]){
             low = mid+1;
         }else if(rotateArray[mid]==rotateArray[high]){
             high=high-1;
         }else{
             high=mid;
         }
        
    }
    return rotateArray[low];
    
      
}
module.exports = {
    minNumberInRotateArray : minNumberInRotateArray
};
相關文章
相關標籤/搜索