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

相关推荐
爱吃苹果的梨叔1 分钟前
KVM和分布式坐席参数怎么看?端口、通道、节点都是什么意思
python
量化吞吐机7 分钟前
近期AI量化开发,先跑最小流程再谈复杂功能
人工智能·python
杰佛史彦明113 分钟前
PDF 表格转 CSV:Python 实现方法与代码解析
开发语言·python·pdf
智写-AI22 分钟前
推荐一下好用的降英文AI工具工具
人工智能·python
Frostnova丶25 分钟前
(13)LeetCode 53. 最大子数组和
算法·leetcode·职场和发展
什巳27 分钟前
JAVA练习277- 找到字符串中所有字母异位
java·开发语言·算法·leetcode
机器学习之心27 分钟前
基于遗传粒子群混合算法的无人机三维路径规划:Matlab 实现与多算法对比分析
算法·matlab·无人机·无人机三维路径规划·遗传粒子群混合算法
本王是暴君40 分钟前
AutoMem:把 Agent Memory 变成可训练的记忆管理技能
人工智能·算法·数据挖掘
zmzb010344 分钟前
C++课后习题训练记录Day154
数据结构·c++·算法
江华森1 小时前
Python神经网络编程(四):Python从零搭建神经网络
开发语言·python·神经网络