Find Minimum in Rotated Sorted Array
71
Mar 19, 2022

class Solution {
public int findMin(int[] nums) {

    int pivot=FindPivot(nums,0,nums.length-1);

    if(pivot==-1)
        return(Search(nums,0,nums.length-1));
    else 
        return(Search(nums,pivot+1,nums.length-1));
}

int FindPivot(int[] nums,int start,int end){
    
    while(end>=start){
        int mid=start+(end-start)/2;
        
        if(end>mid&&nums[mid]>nums[mid+1])
            return mid;
        if(start<mid&&nums[mid-1]>nums[mid])
            return mid-1;
        if(nums[start]>nums[mid])
            end=mid-1;
        else
            start=mid+1;
    }
 return -1;
}

int Search(int[] nums,int start,int end){
      return nums[start];
     
    }
}
Comments (0)