题解 | #旋转数组的最小数字#
旋转数组的最小数字
http://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
简单题目,直接看代码,有注释。在讨论里看到各种二分法啥的,属实没明白要这么复杂吗。
import java.util.ArrayList;
public class Solution {
public int minNumberInRotateArray(int [] array) {
if (array.length == 0) {
return 0;
}
int len = array.length;
for (int i = 0; i < len; i++) {
// 判断是不是数组最后一个元素,防止i + 1越界
if (i + 1 == len) {
if (array[i] > array[0]) {
return array[0];
}
} else {
//因为是有序(有序然后把一部分截下来接到后面)的,所以只要判断当前元素大于下一个元素,就可以返回下一个元素了
if (array[i] > array[i + 1]) {
return array[i + 1];
}
}
}
return 0;
}
}
