nums라고 하는 숫자 목록과 정수 k가 있다고 가정하고 목록에서 가장 큰 정수와 가장 작은 정수의 차이가 가능한 한 작아지도록 크기 k의 목록을 만들기 위해 nums에서 요소를 선택해야 합니다. 그리고 우리는 이 차액을 반환할 것입니다.
따라서 입력이 nums =[3, 11, 6, 2, 9], k =3과 같으면 우리가 만들 수 있는 최상의 목록이 [2, 3, 6]이므로 출력은 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
목록 번호 정렬
-
ls :=새 목록
-
범위 0에서 숫자 크기 - k + 1의 i에 대해 수행
-
nums[i + k - 1] - ls
끝에 nums[i] 삽입
-
-
최소 ls를 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def solve(self, nums, k): nums.sort() ls = [] for i in range(len(nums) - k + 1): ls.append(nums[i + k - 1] - nums[i]) return min(ls) ob = Solution() nums = [3, 11, 6, 2, 9] k = 3 print(ob.solve(nums, k))반환
입력
[3, 11, 6, 2, 9],3
출력
4