forked from super30admin/Binary-Search-2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFindMinmum_sorted_array.java
More file actions
40 lines (30 loc) · 1.05 KB
/
FindMinmum_sorted_array.java
File metadata and controls
40 lines (30 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Time Complexity : O(log(N)) N is size of input
// Space Complexity : O(1) No Auxilary Array
// O(log(N)) recursive stack space
// Did this code successfully run on Leetcode : YES
// Your code here along with comments explaining your approach
class FindMinmum_sorted_array {
public int findMin(int[] nums) {
int left = 0;
int right = nums.length - 1;
return find_minimum(nums,left,right);
}
public int find_minimum(int [] nums, int left, int right){
if(right < left) return nums[0];
if (left == right){
return nums[left];
}
int mid = left +(right - left )/2;
if( mid < right && nums[mid+1] < nums[mid]){
return nums[mid+1];
}
if(mid > left && nums[mid-1] > nums[mid]){
return nums[mid];
}
if(nums[mid] < nums[right]){
return find_minimum(nums,left,mid-1);
}else{
return find_minimum(nums,mid+1,right);
}
}
}