很好的經驗: 二分法並非只能在有序的陣列中才能使用,只要你確定某處必有你想要的東西,則可以利用二分法一步步縮小範圍查詢下去。
演算法: 先在最左和最右找有沒有 區域性最小,沒有的話,區域性最小必定在中間,則縮小範圍找下去
#includeusing namespace std;
int findlocalmin(int arr,int l, int r);
int main();
cout<< findlocalmin(arr, 0,8);
return 0;
}int findlocalmin(int arr,int l, int r)
if(arr[r-1] > arr[r])
int mid = l + ((l+r)>>1);
if(arr[mid-1] > arr[mid] && arr[mid]< arr[mid+1])
if(arr[mid-1] < arr[mid])
if(arr[mid]>arr[mid+1])
return -1;
}
左神基礎班 鍊錶的partition
linknode getpartition linknode head linknode go head next linknode small nullptr linknode equal nullptr linknode big nullptr 第一次遍歷,我們要找到第乙個 與最後乙個小的 和最...
左神基礎班 二維矩陣轉圈列印
乙個函式 控制從外圍列印一圈 另外乙個函式控制 列印最外圈,次外圈 再進去一圈。額。沒法描述了 囧 includeusing namespace std void myprint int matrix 4 int row1,int col1,int row2,int col2 void revolv...
在陣列中找3個連續的奇數判有無
1550給你乙個整數陣列 arr,請你判斷陣列中是否存在連續三個元素都是奇數的情況 如果存在,請返回 true 否則,返回 false 示例 1 輸入 arr 2,6,4,1 輸出 false 解釋 不存在連續三個元素都是奇數的情況。示例 2 輸入 arr 1,2,34,3,4,5,7,23,12 ...