Python程式:將數字列表拆分成兩個部分,使中位數的絕對差最小
假設我們有一個名為nums的數字列表,我們需要將其分成兩個大小相同的子列表,使得每個列表的中位數之間的絕對差儘可能小,並找到這個差值。請注意,此處nums的長度/2將為奇數。
例如,如果輸入為[2, 10, 8, 5, 4, 7],則輸出為2,因為我們可以建立兩個列表[2,5,10]和[4,7,8],然後中位數分別為5和7,它們的差值為2。
為了解決這個問題,我們將遵循以下步驟:
- 對列表nums進行排序
- m := nums大小/2的商
- 返回|nums[m] - nums[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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP