题解 | #旋转数组的最小数字#
旋转数组的最小数字
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; } }