배열 -python - 배열의 회전의 최소 번호 제공 - 안전성을 입증

제목 설명

여러 요소들의 어레이의 초기 배열은, 우리가 회전 호출 배열의 끝으로 이동.
출력 회전 작은 소자 어레이의 회전의 입력 어레이의 비 내림차순.
예를 들어, 배열 {3,4,5,1,2} {1,2,3,4,5}은 최소 어레이의 회전이다.
참고 : 배열의 크기는, 반환 0 0이면 모든 요소가 0보다 큰에 제시되어있다.
 
사고
질문의 의미를 알고, 회전 후, 가장 작은 요소의 출력은, 우리가 분을 사용할 수 있습니다 ().
NA하면 분 () 이진 검색을 사용.
 
링크 : HTTPS : //www.nowcoder.com/questionTerminal/9f3231a991af4f55b95579b44b7a01ba F =? 토론 
출처 : 순 오프 소 

# - * - 코딩 : UTF-8 - * - 
클래스 솔루션 :
     DEF minNumberInRotateArray (자체, rotateArray가) :
         #을 사용할 수 있습니다 분 () 함수는하지만, NA 최소 기능의 경우, 아이디어는 이진 검색해야 
        # 때 재귀 수익을 사용해야합니다 다음 두 가지 사항에 대한 재귀 모양을 사용! ! ! 그렇지 않으면 없음 반환 
        #의 여기에 코드를 작성 배경 화면 
        시작 = 0  (rotateArray) 렌을 = - 1. 
        MID = INT ((시작 + 엔드) / 2 )
         경우 렌 (rotateArray) == 2 :
             IF rotateArray [0]> rotateArray [. 1 ] :
                 rotateArray [1 ]
             다른 :
                 rotateArray [0] 
 
        ELIF rotateArray [미드]> rotateArray [END]
             복귀 self.minNumberInRotateArray (rotateArray [미드 : 최종 + 1 ])
         ELIF rotateArray는 [미드] < rotateArray [START]
             리턴 자체 .minNumberInRotateArray (rotateArray [START : 중간 + 1])

 

추천

출처www.cnblogs.com/ansang/p/12033579.html