在Python中找到大小为k的字典序最小的子序列的程序
假设我们有一个名为nums的数字列表和另一个值k,我们必须找到大小为k的字典序最小的子序列。
因此,如果输入是nums = [2,3,1,10,3,4] k = 3,则输出将为[1,3,4]
为了解决这个问题,我们将遵循以下步骤 −
- l:= nums的规模,r:= k – 1
- out:=新列表
- for j in range 0到k,do
- mn:= nums [r的补数]
- for i in range r到l,do
- 如果mn >= nums [i的补数],则
- mn:= nums [i的补数]
- l:= i
- r:= r – 1
- 将mn插入out的末尾
- 返回输出
更多Python相关文章,请阅读:Python 教程
示例(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]