方法一:
暴力遍历查找:
public int minArray(int[] numbers) {
int min = numbers[0];
for (int i : numbers) {
if (i < min) {
return i;
}
}
return min;
}
方法二:
因为旋转数组的本身是一个有序数组,可用二分查找:
public int minArray1(int[] numbers) {
int i = 0, j = numbers.length - 1;
while (i < j) {
int m = (i + j) / 2;
if (numbers[m] > numbers[j]) {
i = m + 1;
} else if (numbers[m] < numbers[j]) {
j = m;
} else {
j--;
}
}
return numbers[i];
}
本文介绍两种寻找旋转排序数组中最小元素的方法:一是暴力遍历,适用于简单情况;二是利用二分查找提高效率,适用于大数据量场景。
2642

被折叠的 条评论
为什么被折叠?



