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

Python에서 가장 큰 항목과 가장 작은 항목의 차이가 최소인 k 크기 목록을 찾는 프로그램

<시간/>

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