거누의 개발노트

[파이썬] 33. Search in Rotated Sorted Array - 리트코드 본문

코딩테스트

[파이썬] 33. Search in Rotated Sorted Array - 리트코드

Gogozzi 2022. 5. 28. 17:49
반응형

문제

오름차순으로 정렬된 정수 그룹nums가 있습니다.
함수에 전달하기 전에nums는 알 수 없는 축 인덱스 k (1 <= k < nums.length) 에서 회전할 수 있다.
예를 들어 *[0,1,2,4,5,6,7]는 추축 인덱스 3에서 회전하여 [4,5,6,7,0,1,2]로 변할 수 있다.

회전할 수 있는 그룹nums와 정수 목표를 지정합니다. 대상의 인덱스가nums 단위이면 이 인덱스를 되돌려줍니다.
대상의 인덱스가nums 단위가 아니면 -1을 반환합니다.
실행 시 복잡도 O(log n) 의 알고리즘을 작성해야 합니다.

입력

Input: nums = [4,5,6,7,0,1,2], target = 0

출력

Output: 4

작성한 코드1

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        idx_min = sorted([[i, v] for i,v in enumerate(nums)], key=lambda x:x[1])[0][0]
        nums = nums[idx_min:] + nums[:idx_min]
        i = bisect.bisect_left(nums, target)
        if i < len(nums) and nums[i] == target:
            return (idx_min + i) % len(nums)
        else:
            return -1

https://leetcode.com/problems/search-in-rotated-sorted-array/

 

Search in Rotated Sorted Array - 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

 

반응형
Comments