154. Find Minimum in Rotated Sorted Array II

mac2026-08-26  12

Problem Description:

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e.,  [0,1,2,4,5,6,7] might become  [4,5,6,7,0,1,2]).

Find the minimum element.

The array may contain duplicates.

Example 1:

Input: [1,3,5] Output: 1

Example 2:

Input: [2,2,2,0,1] Output: 0

Note:

This is a follow up problem to Find Minimum in Rotated Sorted Array.Would allow duplicates affect the run-time complexity? How and why?

Analysis:

本题利用旋转的特性,逆向遍历整个序列,找到第一个元素大于其后的元素,其就是最小的元素。代码如下:

Code:

class Solution { public int findMin(int[] nums) { for(int i = nums.length - 2; i >= 0; i--) { if(nums[i] > nums[i + 1]) { return nums[i + 1]; } } return nums[0]; } }

 

最新回复(0)