컴퓨터 시각 에 집중 하 는 AndyJ 의 어머니 를 따라 알고리즘 을 배 운 매일 한 문제 leetcode 33 검색 회전 정렬 배열
:
33.
。
( , [0,1,2,4,5,6,7] [4,5,6,7,0,1,2] )。
, , , -1 。
。
O(log n) 。
코드 직접 쓰기: 더 블 포인터, 이 링크 의 그림 이 참 좋 습 니 다. 참조: 링크: 2 분 찾기. 자, 이것 도 알 아 볼 거 라 고 믿 습 니 다.우리 가 판단 하 는 것 은 영원히, 혹은 필요 한 것 은 영원히, 그 단조 로 운 구간, 다른 것 은 else 로 대체 하 는 것 이다.그게 중요 해.python 코드 는 다음 과 같 습 니 다:
class Solution(object):
def search(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
l = 0
r = len(nums)-1
while l<=r:
mid = l+(r-l)//2
if nums[mid]==target:
return mid
if nums[l]<nums[mid]:
if nums[l]<=target and nums[mid]>target:
r = mid-1
else:
l = mid+1
elif nums[l]>nums[mid]:
if nums[r]>=target and nums[mid]<target:
l = mid+1
else:
r = mid-1
else:
l = mid+1
return -1
디 테 일이 중요 합 니 다. else 를 많이 사용 하지 마 세 요. elif 를 사용 하 는 것 이 중요 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.