50. 随机数排序

50. 随机数排序

题目描述

生成 N 个 1 到 500 的随机数,你需要删除掉其中重复的数字,即相同的数字只保留一个,把其余相同的数字去掉,然后再把这些数从小到大进行输出。

输入描述

第一行先输入随机整数的个数 N 。 接下来一行包含 N 整数,代表生成的随机数。

输出描述

输出为单独一行,为去重排序过的数组,每个数字后都有一个空格。

输入示例

3

2 2 1

输出示例

1 2

提示信息

数据范围:

1 <= N <= 10^9

1 <= 随机数 <= 500

实现代码(Python):

python 复制代码
import sys 

def main():
    lines=sys.stdin.read().splitlines()
    idx=0
    n=int(lines[idx])
    idx+=1
    nums=list(map(int,lines[idx].split()))
    #print(nums)
    nums_set=[0]*501
    for i in range(n):
        nums_set[nums[i]]+=1
    #print(nums_set)

    res=[]
    for i in range(1,501):
        if nums_set[i]!=0:
            res.append(i)
    s=[str(x) for x in res]
    print(' '.join(s))

if __name__=="__main__":
    main()
        

分析

哈希表优势:去重操作 O (1) 时间复杂度

本题也可使用:集合(set),其是 Python 中最简洁的哈希表实现,add() 操作时间复杂度 O (1),遍历 N 个数的时间复杂度 O (N);

相关推荐
find1star5 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
迅翼SwiftWing5 小时前
编队系列(总)|固定翼编队如何实现稳定飞行?通信架构、协同算法与工程约束深度解析
算法·架构
LB21125 小时前
力扣160 21 86
算法·leetcode·职场和发展
benchmark_cc6 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
小智老师PMP6 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
HugoStudio_SWAN7 小时前
洛谷 B4450 / B3867 / B3923 智慧购物、储蓄与做题——从程序到生活
c++·学习·程序人生·算法·生活
a187927218317 小时前
【算法】动态规划第二篇:双序列 DP 三课——继承、计步与断链
算法·leetcode·动态规划·dp·回溯·暴力·算法讲解
2601_962382437 小时前
python快乐编程网络爬虫课后答案
python·网络爬虫·学习工具·课后答案·刷题app
鹏哥带你干乡墅8 小时前
优选乡墅赋能培训平台如何帮助提升乡村建设?
大数据·人工智能·python
江畔柳前堤8 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native