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
- nums[i] + nums[j]> target이면
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
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