거누의 개발노트
[파이썬] 33. Search in Rotated Sorted Array - 리트코드 본문
반응형
문제
오름차순으로 정렬된 정수 그룹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/
반응형
'코딩테스트' 카테고리의 다른 글
[파이썬] 167. Two Sum II - Input Array Is Sorted - 리트코드 (0) | 2022.05.28 |
---|---|
[파이썬] 부품 찾기 - 이코테 (0) | 2022.05.28 |
[파이썬] 백준 - 나이순 정렬 - 10814 (0) | 2022.05.27 |
[파이썬] 백준 - 단어 정렬 - 1181 (0) | 2022.05.27 |
[파이썬] 백준 - 좌표 정렬하기2 - 11651 (0) | 2022.05.27 |
Comments