leetcode链接:
https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/
方案一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| int left = 0, right = nums.length - 1, mid = 0, end =nums.length - 1; if (nums[0] <= nums[end]) return nums[0]; while (left <= right) { mid = left + (right - left) / 2; if (nums[mid] > nums[end]) { left = mid + 1; } else { right = mid - 1; } if (nums[mid] > nums[mid + 1] ) { return nums[mid + 1]; } } return nums[mid + 1];
|
结果
- 150/150 cases passed (0 ms)
- Your runtime beats 100 % of java submissions
- Your memory usage beats 53.28 % of java submissions (41.1 MB)
分析
时间复杂度:
O( log n )
空间复杂度:
O( 1 )
几乎最优方案
https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/solution/xun-zhao-xuan-zhuan-pai-xu-shu-zu-zhong-5irwp/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public int findMin(int[] nums) { int low = 0; int high = nums.length - 1; while (low < high) { int pivot = low + (high - low) / 2; if (nums[pivot] < nums[high]) { high = pivot; } else { low = pivot + 1; } } return nums[low]; } }
作者:LeetCode-Solution 链接:https: 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|