(1) leetcode 브러시 제목 파이썬 노트 - 두 개의 숫자

다음 내용은 다음과 같습니다

감안할 때 정수의 배열 nums  과 목표 값 target , 당신은 배열의 두 정수의 목표 값을 파악하고, 그 배열 첨자로 돌아갑니다 .

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

기타 참고 사항 :

주제는 다음이 같은 배열 요소에서 재사용 될 수 없음을주의 :

nums의 = [3, 2, 4, 6 = 대상이 시간 대신 [2,1] 반환한다 [0,0]

nums의 = [3,3] 목표 = 6, 이때 반환한다 [0, 1] 대신 [0,0] 또는 [1,1]

가장 쉬운 방법은, 두 개의 사이클 쓰기 두 숫자의 합과 같다 대상을 식별하는 것입니다

그러나 다음의 요소를 찾기 위해 처음부터 반복 요소 배열의 범위를 제한하기위한 루프 두 가지를 가지고하지 않기 위해, 회로도 다음

클래스 솔루션 (객체) :
     데프 twoSum (자기, nums, 대상) :
         "" "
        : 타입 nums : 목록 [INT]
        : 유형 대상 : INT
        : RTYPE : 목록 [INT]
        "" " 
        길이 = LEN (nums)
         에 대한 I 범위 (길이)
             에 대한 J  범위 (I + 1 : 길이)
                 경우 (nums은 [I]는 + nums [J] == 타겟) :
                     리턴 [I, J를 ]

두 번 사이클 효율은 코멘트 영역의 레코드 레이블 요소에서 요소를 통과 할 때, 수행을 참조하기 위해 당신이 사전을 사용할 수 높지 않다

우리가 목표 nums [i]를 찾을 때, 당신은 단지 사전에서 찾을 수 있습니다, 사전 조회 시간 복잡도는 $ O (1) $입니다

클래스 솔루션 :
     데프 twoSum (자기, nums, 대상) :
         "" "
        : 타입 nums : 목록 [INT]
        : 유형 대상 : INT
        : RTYPE : 목록 [INT]
        "" " 
        N = LEN (nums)
        룩업 = {}
         에 대한 I 범위 (N) :
            TMP = 대상 - nums [I]
             의 경우 TMP 조회 :
                 [룩업 [TMP, I]
            룩업 [nums [내가] = 1

 

추천

출처www.cnblogs.com/dogecheng/p/11683670.html