From 67c5e39dedc80e6fee9ca41280b4ebdda49b5dfa Mon Sep 17 00:00:00 2001 From: YogeshPardeshi <31638743+YogeshPardeshi@users.noreply.github.com> Date: Fri, 22 May 2026 21:57:48 -0400 Subject: [PATCH] Create Solution.java --- Solution.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Solution.java diff --git a/Solution.java b/Solution.java new file mode 100644 index 00000000..c022a7a1 --- /dev/null +++ b/Solution.java @@ -0,0 +1,57 @@ +class Solution { + public int[] searchRange(int[] nums, int target) { + int low = 0; + int high = nums.length -1; + + int leftIndex = searchleftIndex(nums, low, high, target); + if(leftIndex == -1) return new int [] { -1, -1}; + int rightIndex = searchRighIndex(nums, leftIndex, high, target); + return new int[] {leftIndex, rightIndex}; + } + + private int searchleftIndex(int[] nums,int low, int high, int target) { + + 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) { + low = mid+1; + } else { + high = mid -1; + } + } + + return -1; + } + + private int searchRighIndex(int[] nums,int low, int high, int target) { + + while(low<=high) { + int mid = low + (high -low)/2; + + if(nums[mid] == target) { + + if (mid == high || nums[mid+1] != target) { + return mid; + } else { + low = mid +1; + } + + }else if(nums[mid] < target) { + low = mid+1; + } else { + high = mid -1; + } + } + + return -1; + } +}