2020年7月22日 旋转数组的最小数字 minArray
class Solution {
public int minArray(int[] numbers) {
}
}
解题思路:
这道题看起来很简单,实际上有一个非常大的坑在里面,而且这个坑非常难发现。
这个坑不再题目中,而是存在于注意后面的连接里。
为什么一道简单的题会和一道困难的题相同?这道题到底有哪里比较特殊?
普通的算法:
遍历数组找到最小的值,这个值必定是数组的最小值。
进阶的算法:
二分查找法。
快速锁定旋转点出现的位置区间。
方式1:
public int findMin2(int[] numbers) {
int min=numbers[0];
for (int i=0;i<numbers.length;i++){
if (numbers[i]<min)
return numbers[i];
}
return min;
}
二分法:失败
逻辑没理顺,没做出来,主要是对重复数的处理方面。