50. 随机数排序
50. 随机数排序题目描述生成 N 个 1 到 500 的随机数你需要删除掉其中重复的数字即相同的数字只保留一个把其余相同的数字去掉然后再把这些数从小到大进行输出。输入描述第一行先输入随机整数的个数 N 。 接下来一行包含 N 整数代表生成的随机数。输出描述输出为单独一行为去重排序过的数组每个数字后都有一个空格。输入示例32 2 1输出示例1 2提示信息数据范围1 N 10^91 随机数 500实现代码Python:importsysdefmain():linessys.stdin.read().splitlines()idx0nint(lines[idx])idx1numslist(map(int,lines[idx].split()))#print(nums)nums_set[0]*501foriinrange(n):nums_set[nums[i]]1#print(nums_set)res[]foriinrange(1,501):ifnums_set[i]!0:res.append(i)s[str(x)forxinres]print( .join(s))if__name____main__:main()分析哈希表优势去重操作 O (1) 时间复杂度本题也可使用集合set其是 Python 中最简洁的哈希表实现add() 操作时间复杂度 O (1)遍历 N 个数的时间复杂度 O (N)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433331.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!