第二章 :查詢與排序-------2.17解題實戰_旋轉陣列的最小數字(改造二分法)
旋轉陣列的最小數字(改造二分法):
輸入:一個遞增排序的陣列的一個旋轉;
輸出:旋轉陣列的最小元素。
#include<iostream>
using namespace std;
int searchMin(int arr[],int length){
int begin=0;
int end=length-1;
int initMid=(end-begin)>>1;
//if(arr[begin]<arr[end]) return arr[begin];
if(arr[begin]==arr[initMid]&&arr[initMid]==arr[end]){ //以防情況:1,0,1,1,1
int ans=arr[begin];
for(int i=1;i<length;i++){
ans=min(ans,arr[i]);
}
return ans;
}
else{
//begin和end指向相鄰元素,退出
while(begin+1<end){
int mid=begin+((end-begin)>>1);
//要麼左側有序,要麼右側有序
if(arr[mid]>=arr[begin]){ //左側有序
begin=mid;
}
else{
end=mid;
}
}
return arr[end];
}
}
int main(){
int array[]={1,0,1,1,1 };
cout<<searchMin(array,5)<<endl;
int array1[]={4,5,1,2,3};
cout<<searchMin(array1,5);
return 0;
}
結果:
相關文章
- 面試:Java 實現查詢旋轉陣列的最小數字面試Java陣列
- 0二分查詢簡單 牛客NC.71旋轉陣列的最小數字 leetcode劍指 Offer 11. 旋轉陣列的最小數字陣列LeetCode
- 劍指offer:旋轉陣列的最小數字陣列
- 劍指offer 旋轉陣列的最小數字陣列
- 我請大家來刷題:旋轉陣列的最小數字陣列
- 【劍指offer】7.旋轉陣列的最小數字陣列
- 【劍指 Offer】11. 旋轉陣列的最小數字陣列
- 劍指 Offer 11. 旋轉陣列的最小數字陣列
- 第二章 :查詢與排序-------2.18題目講解_在有空字串中的有序字串陣列中查詢排序字串陣列
- 旋轉陣列中的最小元素陣列
- 153. 尋找旋轉排序陣列中的最小值排序陣列
- (python版)《劍指Offer》JZ06:旋轉陣列的最小數字Python陣列
- 153. 尋找旋轉排序陣列中的最小值(中)排序陣列
- LeetCode-153-尋找旋轉排序陣列中的最小值LeetCode排序陣列
- 【LeetCode】153. 尋找旋轉排序陣列中的最小值LeetCode排序陣列
- 每日一練(24):在排序陣列中查詢數字排序陣列
- 劍指offer面試題11:旋轉陣列的最小數字(Java版已在牛客網AC)面試題陣列Java
- 第二章 :查詢與排序-------2.16 解題實戰_小白上樓梯(遞迴設計)排序遞迴
- LeetCodeHot100 二分查詢 35. 搜尋插入位置 74. 搜尋二維矩陣 34. 在排序陣列中查詢元素的第一個和最後一個位置 33. 搜尋旋轉排序陣列 153. 尋找旋轉排序陣列中的最小值LeetCode矩陣排序陣列
- LeetCode 刷題 [C++] 第33題. 搜尋旋轉排序陣列 (二分法+簡潔易懂)LeetCodeC++排序陣列
- LeetCode 熱題 HOT 100 Java題解——33. 搜尋旋轉排序陣列LeetCodeJava排序陣列
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 劍指offer-轉陣列的最小數字-php陣列PHP
- 每日一題 - 劍指 Offer 53 - I. 在排序陣列中查詢數字 I每日一題排序陣列
- 陣列的查詢(搜尋):線性查詢和二分法查詢陣列
- 第二章 :查詢與排序-------希爾排序排序
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- 第三章:查詢與排序(下)----------- 3.29 題解:判斷陣列的包含問題排序陣列
- 第三章:查詢與排序(下)----------- 3.23 相關題解:排序陣列中找和的因子排序陣列
- 力扣·33. 搜尋旋轉排序陣列力扣排序陣列
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- 第三章:查詢與排序(下)----------- 3.10 實戰解題_哪個數字超過了一半?排序