diff --git a/Sample b/Sample index ceae9f98..7efeb527 100644 --- a/Sample +++ b/Sample @@ -3,5 +3,98 @@ // Did this code successfully run on Leetcode : // Any problem you faced while coding this : +NAME: ATHARVA KHARAGE + // Your code here along with comments explaining your approach in three sentences only +PROBLEM 1: 74. Search a 2D Matrix + +class Solution: + def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: + m = len(matrix) + n = len(matrix[0]) + + low = 0 + high = (m*n) - 1 + + while(low <= high): + mid = (low + high) // 2 + + r = mid // n + c = mid % n + + if matrix[r][c] == target: return True + + elif matrix[r][c] > target: + high = mid - 1 + + else: + low = mid + 1 + + return False + +PROBLEM 2: 33. 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 + + elif nums[low] <= nums[mid]: + # left sorted + if target >= nums[low] and target < nums[mid]: + high = mid - 1 + + else: + low = mid + 1 + + else: + # right sorted + if target > nums[mid] and target <= nums[high]: + low = mid + 1 + else: + high = mid - 1 + + return -1 + +PROBLEM 3: 702. Search in a Sorted Array of Unknown Size + +# """ +# This is ArrayReader's API interface. +# You should not implement it, or speculate about its implementation +# """ +#class ArrayReader: +# def get(self, index: int) -> int: + +class Solution: + def search(self, reader: 'ArrayReader', target: int) -> int: + low = 0 + high = 1 + + while reader.get(high) < target: + low = high + high = 2 * high + + while(low <= high): + mid = low + (high - low) // 2 + + if reader.get(mid) == target: return mid + + elif reader.get(mid) > target: + high = mid - 1 + + else: + low = mid + 1 + return -1 + + + + + + +