题解 | #旋转数组的最小数字#
旋转数组的最小数字
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @return int整型 */ int minNumberInRotateArray(int* nums, int numsLen ) { // write code here if (nums == NULL) return 0; int left = 0; int right = numsLen - 1; while (left < right) { // 确认子数组是否是类似1,1,2,4,5,..,7的非递减数组 if (nums[left] < nums[right]) return nums[left]; int mid = (left + right) / 2; // 如果左半数组为有序数组 if (nums[left] < nums[mid]) left = mid + 1; // 如果右半数组为有序数组 else if (nums[right] > nums[mid]) right = mid; else left++; } return nums[left]; }