package com.exe2.offer;
/** * 【題目】輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。
* 【思路】:①正常情況下可利用二分法進行查詢;
* ②特殊情況,要用順序查詢。
* @author wgs
* */
public class searchminnuminspinarray catch (exception e)
}//定義指標
int preindex=0;
int endindex=arrs.length-1;
int midindex=preindex;//此處不宜直接設為0,因為當判斷到要求將陣列前0個元素旋轉時,第乙個元素 即為最小值(不一定是0)
//預設是遞增的排序
while(arrs[preindex]>=arrs[endindex])
if(arrs[midindex]>=arrs[preindex])else if(arrs[midindex]<=arrs[preindex])
//判斷下是否前後指標相遇,相遇後指標所指即為最小值
if(endindex-preindex==1)
}return arrs[midindex];
}//順序查詢法
public int mininorder(int arrs,int preindex,int endindex)
}return result;
}public static void main(string args) ;//新建乙個旋轉後的陣列3,4,5,1,2
searchminnuminspinarray s=new searchminnuminspinarray();
int min=s.getminnum(arrs);
system.out.println("最小值是"+min);
}}
旋轉陣列的最小值
題目 把乙個陣列的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小值。例如陣列為的乙個旋轉,該陣列的最小值為1。解析 1 我們可以用順序查詢的方法找到陣列中的最小值,但是這個方法沒有用到旋轉陣列區域性有序的特點。2 和二分查詢法一樣,我們用兩個指標...
旋轉陣列的最小值
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。思路 類似二分查詢,不斷縮小查詢範圍 int minnumberinro...
旋轉陣列的最小值
題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 代表旋轉陣列的元素個數。...