【python练习题】输入一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数

该博客讨论了一个编程问题,即如何从一个可能包含重复值的数组中找出最小的K个数。提供的代码示例展示了如何通过输入数组长度、数字及K值,使用排序来获取并返回这K个最小数字。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"""
输入一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。
2.	输入描述
    输入一个长度为 n 的可能有重复值的数组
3.	输出描述
    输出最小的K个数组成的数组
4.	示例
输入:
[4,5,1,6,2,7,3,8],4
返回值:
[1,2,3,4]
说明:
返回最小的4个数即可,返回[1,3,2,4]也可以
"""
def min_number():
    number_list = []
    length = int(input("请输入数组长度:"))
    if length < 1:
        print("-1")
    else:
        for i in range(length):
            number = int(input("请输入数字:"))
            number_list.append(number)
        print(number_list)
    k = int(input("请输入最新的K个数:"))
    k_list = sorted(number_list)

    print(k_list[0:k])
    return k_list[0:k]
min_number()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值