在Python中找到大小为k的字典序最小的子序列的程序

在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] 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程