From b9cd157dd701a8a0f3e1d539179e3081d756e8e7 Mon Sep 17 00:00:00 2001 From: ashmichheda Date: Thu, 11 Jul 2019 22:29:39 +0530 Subject: [PATCH] added python solution for Problem 34 --- .../Solution.py | 41 +++++++++++++++++++ solution/README.md | 1 + 2 files changed, 42 insertions(+) create mode 100644 solution/0034.Find First and Last Position of Element in Sorted Array/Solution.py 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