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);

相关推荐
非优秀程序员7 小时前
第05章 播放器大战,暴风、快播与那一夜|《互联网产品恩仇录》
算法
用户9562562542911 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
威哥爱编程12 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程12 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_9679801112 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读12 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习
新*13 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer
武子康14 小时前
驾驶轨迹换个坐标,就能给移动机器人用吗?
人工智能·算法·机器学习
David猪大卫14 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习