From d14da47322e8205618646441c4fabb4f43e7cf1f Mon Sep 17 00:00:00 2001 From: Vishal kumar M G Date: Sun, 7 Jun 2026 13:30:47 -0500 Subject: [PATCH 1/3] Finished Searching in rotated sorted array --- P1.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 P1.py diff --git a/P1.py b/P1.py new file mode 100644 index 00000000..de6b26da --- /dev/null +++ b/P1.py @@ -0,0 +1,29 @@ +# Search in Rotated Sorted Array + +class Solution: + def search(self, nums: List[int], target: int) -> int: + low = 0 + high = len(nums)-1 + + while low<=high: + mid = (low+high) // 2 + + if nums[mid] == target: + return mid + + # Check for left sorted array or not: + if nums[low] <= nums[mid]: + if nums[low] <= target and nums[mid] >= target: + # target must be here + high = mid-1 + else: + low = mid+1 + + else: + # At this point, it's right sorted + if nums[mid] <= target and nums[high]>=target: + low = mid+1 + else: + high = mid-1 + + return -1 \ No newline at end of file From 1f46a6c365f1ce0d8503917b1f569ecb0abbf6b1 Mon Sep 17 00:00:00 2001 From: Vishal kumar M G Date: Sun, 7 Jun 2026 13:31:28 -0500 Subject: [PATCH 2/3] Finished search in sorted array of unknown size --- P2.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 P2.py diff --git a/P2.py b/P2.py new file mode 100644 index 00000000..a5134ec4 --- /dev/null +++ b/P2.py @@ -0,0 +1,22 @@ +# Search in a sorted array of unknown size + +class Solution: + def search(self, reader: 'ArrayReader', target: int) -> int: + low = 0 + high = 1 + + while reader.get(high) < target: + low = high + high *= 2 + + while low <= high: + mid = (low + high) // 2 + + if reader.get(mid) == target: + return mid + elif reader.get(mid) < target: + low = mid + 1 + else: + high = mid - 1 + + return -1 \ No newline at end of file From c42eefe655a3986b36825e6c8b3bd0f98fa1e4dc Mon Sep 17 00:00:00 2001 From: Vishal kumar M G Date: Sun, 7 Jun 2026 13:32:14 -0500 Subject: [PATCH 3/3] Finished search an element in a 2D matrix --- P3.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 P3.py diff --git a/P3.py b/P3.py new file mode 100644 index 00000000..6e3256bd --- /dev/null +++ b/P3.py @@ -0,0 +1,23 @@ +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + if not matrix or not matrix[0]: + return False + + rows = len(matrix) + cols = len(matrix[0]) + + low = 0 + high = rows * cols - 1 + + while low <= high: + mid = (low + high) // 2 + mid_value = matrix[mid // cols][mid % cols] + + if mid_value == target: + return True + elif mid_value < target: + low = mid + 1 + else: + high = mid - 1 + + return False \ No newline at end of file