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

파이썬에서 중앙값의 절대 차이가 가장 작도록 숫자 목록을 분할하는 프로그램

<시간/>

nums라는 숫자 목록이 있다고 가정하고 각 목록의 중앙값 간의 절대 차이가 가능한 한 작은 동일한 크기의 두 부분으로 나누어야 하며 이 차이를 찾아야 합니다. 여기서 nums / 2의 길이는 홀수임을 명심해야 합니다.

따라서 입력이 [2, 10, 8, 5, 4, 7]과 같으면 출력은 [2,5,10] 및 [4,7,8]과 같은 두 개의 목록을 만들 수 있으므로 2가 됩니다. , 중앙값은 5와 7이고 차이는 2입니다.

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

  • 목록 번호 정렬
  • m :=nums/2 크기의 몫
  • 반환 |숫자[m] - 숫자[m-1]|

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

예시

class Solution:
   def solve(self, nums):
      nums.sort()
      m = len(nums)//2
      return abs(nums[m] - nums[m-1])
ob = Solution()
print(ob.solve([2, 10, 8, 5, 4, 7]))

입력

[2, 10, 8, 5, 4, 7]

출력

2