diff --git a/solution/0034.Find First and Last Position of Element in Sorted Array/Solution.py b/solution/0034.Find First and Last Position of Element in Sorted Array/Solution.py new file mode 100644 index 0000000000000..27c09f802ebff --- /dev/null +++ b/solution/0034.Find First and Last Position of Element in Sorted Array/Solution.py @@ -0,0 +1,41 @@ +class Solution(object): + def searchRange(self, nums, target): + """ + :type nums: List[int] + :type target: int + :rtype: List[int] + """ + + if not nums or target < nums[0] or target > nums[-1]: + return [-1, -1] + + # Finding the lower limit + left = 0 + right = len(nums) + + while left < right: + middle = (left + right)/2 + if nums[middle] >= target: + right = middle + + else: + left = middle + 1 + + + low = left + # Finding the higher limit + left = 0 + right = len(nums) + + while left < right-1: + middle = (left + right) / 2 + if nums[middle] > target: + right = middle + else: + left = middle + high = left + + if nums[low] == target and nums[high] == target: + return [low, high] + else: + return [-1, -1] diff --git a/solution/README.md b/solution/README.md index 2fd4b6e2ad965..e036171f84515 100644 --- a/solution/README.md +++ b/solution/README.md @@ -183,6 +183,7 @@ │   ├── README.md │   ├── Solution.cpp │   └── Solution.java +│   └── Solution.py ├── 0035.Search Insert Position │   ├── README.md │   ├── Solution.cpp