From f8f1a95a40c672d0a0ef4ebef833e2936f82576d Mon Sep 17 00:00:00 2001 From: Soham Dey <115808276+IamSohamDey@users.noreply.github.com> Date: Mon, 17 Oct 2022 01:13:29 +0530 Subject: [PATCH] Create FindFandLPositionofElementinSortedArray.py Find First and Last Position of Element in Sorted Array code in Phthon --- ...standLastPositionofElementinSortedArray.py | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 FindFirstandLastPositionofElementinSortedArray.py diff --git a/FindFirstandLastPositionofElementinSortedArray.py b/FindFirstandLastPositionofElementinSortedArray.py new file mode 100644 index 0000000..862e69f --- /dev/null +++ b/FindFirstandLastPositionofElementinSortedArray.py @@ -0,0 +1,43 @@ +class Solution: + def searchRange(self, nums: List[int], target: int) -> List[int]: + range_start = -1 + range_end = -1 + + if (nums == None or len(nums) == 0): + return [range_start, range_end] + + start = 0 + end = len(nums) - 1 + + while start + 1 < end: + mid = start + (end - start) // 2 + if nums[mid] < target: + start = mid + elif nums[mid] > target: + end = mid + else: + start = mid + + if nums[end] == target: + range_end = end + elif nums[start] == target: + range_end = start + + start = 0 + end = len(nums) - 1 + + while start + 1 < end: + mid = start + (end - start) // 2 + if nums[mid] < target: + start = mid + elif nums[mid] > target: + end = mid + else: + end = mid + + if nums[start] == target: + range_start = start + elif nums[end] == target: + range_start = end + + return [range_start, range_end]