思路:像题目中的例子,则结果返回数组元素0。和普通的二分查找不同的是,该二分查找的循环条件为 (l < r) && (num[l] > num[r])。
Java代码如下:
public int findMin(int[] num) { int l = 0, r = num.length-1; while((l < r) && (num[l] > num[r])){ int m = (l + r)/2; if (num[m] > num[r]) l = m + 1; else r = m; } return num[l]; }