使用 Python 查詢三步操作後最大值和最小值之間最小差值的程式
假設我們有一個名為 nums 的陣列。我們可以在一步操作中將此陣列中的一個元素更改為任何值。我們必須找到在最多執行 3 次操作後 nums 的最大值和最小值之間的最小差值。
因此,如果輸入類似於 nums = [3,7,2,12,16],則輸出將為 1,因為我們可以將給定陣列更改為 [1,1,0,1,1],因此最大值為 1,最小值為 0,因此差值為 1。
為了解決這個問題,我們將遵循以下步驟:
如果 nums 的大小 <= 4,則
返回 0
對列表 nums 進行排序
ans := 無窮大
對於 i 從 0 到 3 的範圍,執行以下操作:
mi := nums[i]
ma := nums[nums 的長度 -(3-i+1)]
ans := ma-mi 和 ans 的最小值
返回 ans
讓我們檢視以下實現以獲得更好的理解:
示例
def solve(nums):
if len(nums) <= 4:
return 0
nums.sort()
ans = float("inf")
for i in range(4):
mi = nums[i]
ma = nums[-(3-i+1)]
ans = min(ma-mi,ans)
return ans
nums = [3,7,2,12,16]
print(solve(nums))輸入
[3,7,2,12,16]
輸出
1
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP