바위타는 두루미

[leetcode]34. Find First and Last Position of Element in Sorted Array 본문

Study/Algorithm

[leetcode]34. Find First and Last Position of Element in Sorted Array

DoRoMii 2019. 8. 10. 15:54
728x90

34. Find First and Last Position of Element in Sorted Array

 

Given an array of integers nums sorted in ascending order, find the starting and ending position of a given target value.

Your algorithm's runtime complexity must be in the order of O(log n).

If the target is not found in the array, return [-1, -1].

Example 1:

Input: nums = [5,7,7,8,8,10], target = 8

Output: [3,4]

 

Example 2:

Input: nums = [5,7,7,8,8,10], target = 6

Output: [-1,-1]

 

class Solution(object):
    def searchRange(self, nums, target):
        l, r= 0 ,len(nums)-1
     
        while l<=r :
            mid = (l+r)//2
            if nums[mid] == target:
                l,r = mid, mid
                while l>=0 and nums[l]==target:
                    l-=1
                while r <len(nums) and nums[r]==target:
                    r+=1
                return [l+1, r-1]
            elif nums[mid] < target:
                l = mid+1
            else :
                r = mid-1
                
        return [-1,-1]
                

https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/

Comments