From 46e6865efb0625acba8e02b28e4286304497e9b4 Mon Sep 17 00:00:00 2001 From: dhruvil15 <76967484+dhruvil15@users.noreply.github.com> Date: Mon, 13 Apr 2026 20:04:28 -0400 Subject: [PATCH 1/3] Complete Problem9 --- Problem9.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Problem9.java diff --git a/Problem9.java b/Problem9.java new file mode 100644 index 00000000..9c0a6464 --- /dev/null +++ b/Problem9.java @@ -0,0 +1,51 @@ +// Time Complexity : O(log N) +// Space Complexity : O(1) +// Did this code successfully run on Leetcode : Yes +// Any problem you faced while coding this : No + +class Solution { + public int[] searchRange(int[] nums, int target) { + int first = firstBinarySearch(nums, target, 0, nums.length-1); + if (first == -1) return new int[]{-1,-1}; + int second = secondBinarySearch(nums, target, first, nums.length-1); + return new int[]{first, second}; + } + + public static int firstBinarySearch(int[] nums, int target, int low, int high) { + while (low <= high) { + int mid = low + (high - low)/2; + + if (nums[mid] == target) { + if (mid == 0 || nums[mid-1] != target) { + return mid; + } else { + high = mid - 1; + } + } else if (nums[mid] > target) { + high = mid - 1; + } else { + low = mid + 1; + } + } + return -1; + } + + public static int secondBinarySearch(int[] nums, int target, int low, int high) { + while (low <= high) { + int mid = low + (high - low)/2; + + if (nums[mid] == target) { + if (mid == nums.length-1 || nums[mid+1] != target) { + return mid; + } else { + low = mid + 1; + } + } else if (nums[mid] > target) { + high = mid - 1; + } else { + low = mid + 1; + } + } + return -1; + } +} \ No newline at end of file From 8991ede89ecab43a579bc4db08d9f5f15a4dc061 Mon Sep 17 00:00:00 2001 From: dhruvil15 <76967484+dhruvil15@users.noreply.github.com> Date: Mon, 13 Apr 2026 20:10:46 -0400 Subject: [PATCH 2/3] Complete Problem10 --- Problem10.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Problem10.java diff --git a/Problem10.java b/Problem10.java new file mode 100644 index 00000000..c817e4d4 --- /dev/null +++ b/Problem10.java @@ -0,0 +1,25 @@ +// Time Complexity : O(log N) +// Space Complexity : O(1) +// Did this code successfully run on Leetcode : Yes +// Any problem you faced while coding this : No + +class Solution { + public int findMin(int[] nums) { + int low = 0; + int high = nums.length - 1; + while (low <= high) { + if (nums[low] <= nums[high]) { + return nums[low]; + } + int mid = low + (high - low)/2; + if((mid == 0 || nums[mid] < nums[mid - 1]) && (mid == nums.length-1 || nums[mid] < nums[mid + 1])){ + return nums[mid]; + } else if (nums[low] <= nums[mid]) { + low = mid + 1; + } else { + high = mid - 1; + } + } + return -1; + } +} \ No newline at end of file From 8d8b5f0d623713c33415dc37e5e280a9ed82dfc8 Mon Sep 17 00:00:00 2001 From: dhruvil15 <76967484+dhruvil15@users.noreply.github.com> Date: Mon, 13 Apr 2026 20:17:27 -0400 Subject: [PATCH 3/3] Complete Problem10 --- Problem11.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Problem11.java diff --git a/Problem11.java b/Problem11.java new file mode 100644 index 00000000..f2209ad1 --- /dev/null +++ b/Problem11.java @@ -0,0 +1,24 @@ +// Time Complexity : O(log N) +// Space Complexity : O(1) +// Did this code successfully run on Leetcode : Yes +// Any problem you faced while coding this : No + +class Solution { + public int findPeakElement(int[] nums) { + int low = 0; + int high = nums.length - 1; + + while(low <= high) { + int mid = low + (high - low)/2; + + if((mid == 0 || nums[mid] > nums[mid - 1]) && ( mid == nums.length - 1 || nums[mid] > nums[mid + 1])){ + return mid; + } else if (nums[mid + 1] > nums[mid]) { + low = mid + 1; + } else { + high = mid - 1; + } + } + return -1; + } +} \ No newline at end of file