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

Python에서 주어진 대상보다 큰 쌍의 가장 낮은 합을 찾는 프로그램

<시간/>

nums라는 숫자 목록과 다른 값 대상이 있다고 가정합니다. 목표보다 큰 숫자 쌍의 가장 낮은 합을 찾아야 합니다.

따라서 입력이 nums =[2, 4, 6, 10, 14] target =10과 같으면 2와 10을 선택하므로 출력은 12가 됩니다.

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

  • 목록 번호 정렬
  • n :=숫자 크기
  • 답변 :=10^10
  • i :=0, j :=n - 1
  • 내가
  • nums[i] + nums[j]> target이면
    • answer :=답변의 최소값 및 (nums[i] + nums[j])
    • j :=j - 1
  • 그렇지 않으면
    • 나는 :=나는 + 1
  • 반환 응답
  • 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    예시

    class Solution:
       def solve(self, nums, target): nums.sort()
          n = len(nums)
          answer = 10 ** 10
          i, j = 0, n - 1
          while i < j:
             if nums[i] + nums[j] > target:
                answer = min(answer, nums[i] + nums[j])
                j -= 1
             else:
                i += 1
          return answer
    ob = Solution()
    nums = [2, 4, 6, 10, 14]
    target = 10
    print(ob.solve(nums, target))

    입력

    [2, 4, 6, 10, 14], 10

    출력

    12