左神基礎班 在陣列中找區域性最小值

2021-09-13 12:16:24 字數 631 閱讀 2900

很好的經驗: 二分法並非只能在有序的陣列中才能使用,只要你確定某處必有你想要的東西,則可以利用二分法一步步縮小範圍查詢下去。

演算法: 先在最左和最右找有沒有 區域性最小,沒有的話,區域性最小必定在中間,則縮小範圍找下去

#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 ...