Algorithm/LeetCode

[LeetCode] 35. Search Insert Position

rrojin 2022. 2. 28. 13:10

문제링크

https://leetcode.com/problems/search-insert-position/

 

Search Insert Position - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
    def searchInsert(self, nums: List[int], target: int-> int:
        left, right = 0len(nums)-1
        if target>nums[right]:
            return right+1
        if target<nums[0]:
            return 0
        while left<=right:
            pivot = (left+right)//2
            cur = nums[pivot]
            prior = nums[pivot-1]
            if cur ==target or (target <cur and target>prior):
                return pivot
            elif cur>target:
                right = pivot-1
            else:
                left = pivot+1
cs
 

 

POINT

-풀이방법:

Binary Search로 접근한다.

우선, target을 nums의 최소값[0], 최대값[-1]과 비교해본다.

그 다음 이진탐색을 적용하는데, pivot-1값보단 크고 pivot값보다 작은 경우도 발견해야하므로 이진탐색 종료 조건에 이 경우를 추가하였다. 

-Complexity Analysis:

1) Time Complexity : O(logN)

2) Space Complexity: O(1)

'Algorithm > LeetCode' 카테고리의 다른 글

[LeetCode] 283. Move Zeroes  (0) 2022.03.02
[LeetCode] 189. Rotate Array  (0) 2022.03.01
[LeetCode] 977. Squares of a Sorted Array  (0) 2022.03.01
[LeetCode] 278. First Bad Version  (2) 2022.02.28
[LeetCode] 704. Binary Search  (0) 2022.02.28