leetCode-Find Minimum in Rotated Sorted Array

来源:互联网 发布:知之深爱之初 编辑:程序博客网 时间:2024/06/13 23:37

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.

You may assume no duplicate exists in the array.

My Solution:

class Solution {    public int findMin(int[] nums) {        int len = nums.length;        int index = -1;        for(int i = 1;i < len;i++){            if(nums[i] < nums[i - 1]){                index = i;            }        }        return index == -1?nums[0]:nums[index];    }}

Better Solution:

class Solution {    public int findMin(int[] nums) {       return find(nums,0,nums.length-1);    }    public int find(int[] nums, int l, int r) {        if(nums[l] <= nums[r]) {            return nums[l];        }        int mid = (l + r) / 2;        return Math.min(find(nums,l,mid),find(nums,mid+1,r));    }}
阅读全文
0 0
原创粉丝点击