[LeetCode]Find Minimum in Rotated Sorted Array I&II

来源:互联网 发布:数据集市建模工具 编辑:程序博客网 时间:2024/04/30 14:57

https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/

二分查找变种,两种情况,数组存在/不存在重复数字。


当不存在重复数字时:

public class Solution {    public int findMin(int[] nums) {        int beg = 0;        int end = nums.length - 1;        while (beg < end) {            int mid = beg + (end - beg) / 2;            if (nums[mid] < nums[end]) {                end = mid;            } else {                beg = mid + 1;            }        }        return nums[beg];    }}



当存在重复数字时:

https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/


public class Solution {    public int findMin(int[] nums) {        int beg = 0;        int end = nums.length - 1;        while (beg < end) {            int mid = beg + (end - beg) / 2;            if (nums[mid] > nums[end]) {                beg = mid + 1;            } else if (nums[mid] < nums[end]) {                end = mid;            } else {                end--;            }        }        return nums[beg];    }}


0 0
原创粉丝点击