From ec48e68eb1eedef6fbc5863d6eb834eacf7ed6ad Mon Sep 17 00:00:00 2001 From: dilip sahu Date: Sun, 23 Oct 2022 10:20:39 +0530 Subject: [PATCH 1/3] search in rotated sorted array.java --- Searching/Search in Rotated Sorted Array.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Searching/Search in Rotated Sorted Array.java diff --git a/Searching/Search in Rotated Sorted Array.java b/Searching/Search in Rotated Sorted Array.java new file mode 100644 index 0000000..9620cc5 --- /dev/null +++ b/Searching/Search in Rotated Sorted Array.java @@ -0,0 +1,37 @@ +class Solution +{ +public int search(int[] nums, int target) + { + int left = 0, right = nums.length - 1, mid; + while (left <= right) + { + mid = left + (right - left) / 2; + if (nums[mid] == target) + return mid; + // condition for left side is sort + if (nums[left] <= nums[mid]) + { + if (target >= nums[left] && target <= nums[mid]) + { + right = mid - 1; + } + else + { + left = mid + 1; + } + } + else + { + if (target >= nums[mid] && target <= nums[right]) + { + left = mid + 1; + } + else + { + right = mid - 1; + } + } + } + return -1; + } +} \ No newline at end of file From de1fc2c14dc9b67106f153033a37cdf5a3da0541 Mon Sep 17 00:00:00 2001 From: dilip sahu Date: Sun, 23 Oct 2022 10:27:02 +0530 Subject: [PATCH 2/3] Find Smallest Letter Greater Than Target.java --- ...d Smallest Letter Greater Than Target.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Searching/Find Smallest Letter Greater Than Target.java diff --git a/Searching/Find Smallest Letter Greater Than Target.java b/Searching/Find Smallest Letter Greater Than Target.java new file mode 100644 index 0000000..e808aa8 --- /dev/null +++ b/Searching/Find Smallest Letter Greater Than Target.java @@ -0,0 +1,21 @@ +class Solution +{ +public char nextGreatestLetter(char[] letters, char target) + { + int start = 0, end = letters.length - 1; + + while (start <= end) + { + int mid = start + (end - start) / 2; + if (target < letters[mid]) + { + end = mid - 1; + } + else + { + start = mid + 1; + } + } + return letters[start % letters.length]; + } +} \ No newline at end of file From 3bfc7339e30cc763268733baad32b3d79b3c3ca2 Mon Sep 17 00:00:00 2001 From: dilip sahu Date: Sun, 23 Oct 2022 10:37:51 +0530 Subject: [PATCH 3/3] single element in sorted array.java --- Searching/Single Element in a Sorted Array.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Searching/Single Element in a Sorted Array.java diff --git a/Searching/Single Element in a Sorted Array.java b/Searching/Single Element in a Sorted Array.java new file mode 100644 index 0000000..1744c4c --- /dev/null +++ b/Searching/Single Element in a Sorted Array.java @@ -0,0 +1,14 @@ +class Solution { + public int singleNonDuplicate(int[] nums) { + int lo = 0, hi = nums.length - 1; + while (lo < hi) { + int mid = lo + (hi - lo) / 2; + if (mid % 2 == 1) mid--; + if (nums[mid] == nums[mid + 1]) + lo = mid + 2; + else + hi = mid; + } + return nums[lo]; + } +} \ No newline at end of file