Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

세 개의 고유 요소를 찾을 수 있는지 확인하는 프로그램 ose sum이 k와 같거나 Python이 아님

<시간/>

nums라고 하는 숫자 목록과 또 다른 값 k가 있다고 가정하면 목록에서 합이 k인 고유한 요소 3개를 찾을 수 있는지 확인해야 합니다.

따라서 입력이 nums =[11, 4, 6, 10, 5, 1] ​​k =20과 같으면 합이 20인 숫자 [4,6,10]이 있으므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 목록 번호 정렬

  • l :=0, r :=숫자 크기 - 1

  • 동안 l

    • t :=k − nums[l] − nums[r]

    • nums[r − 1]

      • l :=l + 1

      • 루프에서 나오다

    • 범위 l + 1에서 r의 m에 대해 수행

      • nums[m]> t이면

        • r :=r − 1

        • 루프에서 나오다

      • nums[m]이 t와 같으면

        • 참을 반환

  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, nums, k):
      nums.sort()
      l, r = 0, len(nums) − 1
      while l < r − 1:
         t = k − nums[l] − nums[r]
         if nums[r − 1] < t:
            l += 1
            continue
         for m in range(l + 1, r):
            if nums[m] > t:
               r −= 1
               break
            if nums[m] == t:
               return True
      return False
ob1 = Solution()
nums = [11, 4, 6, 10, 5, 1]
k = 20
print(ob1.solve(nums, k))

입력

[11, 4, 6, 10, 5, 1], 20

출력

True