用於在 Python 中查詢大小為 k 的字典序最小子序列的程式
假設我們有一個數字列表 nums 和另一個值 k,我們需要找到大小為 k 的字典序最小子序列。
因此,如果輸入類似於 nums = [2, 3, 1, 10, 3, 4] k = 3,則輸出將為 [1, 3, 4]
為了解決這個問題,我們將遵循以下步驟:
- l := nums 的大小,r := k - 1
- out := 一個新列表
- 對於 j 的範圍從 0 到 k 執行
- mn := nums[r 的補數]
- 對於 i 的範圍從 r 到 l 執行
- 如果 mn >= nums[i 的補數],則
- mn := nums[i 的補數]
- l := i
- 如果 mn >= nums[i 的補數],則
- r := r - 1
- 將 mn 插入 out 的末尾
- 返回 out
示例(Python)
讓我們看看以下實現以更好地理解:
class Solution: def solve(self, nums, k): l, r = len(nums), k - 1 out = [] for j in range(k): mn = nums[~r] for i in range(r, l): if mn >= nums[~i]: mn = nums[~i] l = i r -= 1 out.append(mn) return out ob = Solution() nums = [2, 3, 1, 10, 3, 4] k = 3 print(ob.solve(nums, k))
輸入
[2, 3, 1, 10, 3, 4], 3
輸出
[1, 3, 4]
廣告