本地网站搭建工具,wordpress 投票插件,wordpress 中文 seo,wordpress如何升级文章目录 题目描述与示例题目描述输入描述输出描述#xff1a;示例 1输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例
题目描述
明明生成了N 个 1 至 500 之间的随机整数。请你删去其中重复的数字#xff0c;即… 文章目录 题目描述与示例题目描述输入描述输出描述示例 1输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例
题目描述
明明生成了N 个 1 至 500 之间的随机整数。请你删去其中重复的数字即相同的数字只保留一个把其余相同的数去掉然后再把这些数从小到大排序按照排好的顺序输出。
数据范围 1 ≤ N ≤ 1000 输入的数字大小 val 满足 1 ≤ val ≤ 500
输入描述
第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数代表明明生成的随机数。
输出描述
输出多行表示输入数据处理后的结果。
示例 1
输入
3
2
2
1输出
1
2说明
输入解释 第一个数字是 3也即这个样例的 N 3说明用计算机生成了 3 个 1 到 500 之间的随机整数接下来每行一个输入随机数字共 3 行也即这 3 个随机数字为2 2 1
输出解释2 2 1中出现了重复的2只需要输出一个2即可而且要按照从小到大的顺序输出全部整数即依次输出1 2
解题思路
这道题直接运用哈希集合不包含重复元素的性质将每一个整数都加入哈希集合num_set中。
由于哈希集合是一种无序的数据结构为了从小到大依次输出所有元素需要在所有元素输入完毕之后将哈希集合num_set转化为列表num_lst。对列表num_lst就可以进行排序了排序完成后在一个for循环内依次输出num_lst中的所有元素即可。
代码
Python
# 题目2023Q1A-明明的随机数
# 分值100
# 作者闭着眼睛学数理化
# 算法哈希集合
# 代码有看不懂的地方请直接在群上提问N int(input())# 初始化一个哈希集合num_set用于储存所有不重复元素
num_set set()# 遍历N次依次输入数字
for _ in range(N):num_set.add(int(input()))# 哈希集合是无序的数据结构所以要将哈希集合转化为列表后再排序
num_lst list(num_set)
# 对列表进行排序
num_lst.sort()# 遍历num_lst中的所有元素按照从小到大的顺序依次输出
for num in num_lst:print(num)Java
import java.util.HashSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int N scanner.nextInt();HashSetInteger num_set new HashSet();for (int i 0; i N; i) {num_set.add(scanner.nextInt());}ArrayListInteger num_lst new ArrayList(num_set);Collections.sort(num_lst);for (int num : num_lst) {System.out.println(num);}}
}C
#include iostream
#include unordered_set
#include vector
#include algorithmint main() {int N;std::cin N;std::unordered_setint num_set;for (int i 0; i N; i) {int num;std::cin num;num_set.insert(num);}std::vectorint num_lst(num_set.begin(), num_set.end());std::sort(num_lst.begin(), num_lst.end());for (int num : num_lst) {std::cout num std::endl;}return 0;
}时空复杂度
时间复杂度O(NlogN)。排序所需的时间复杂度。
空间复杂度O(N)。哈希集合所占的额外空间。 华为OD算法/大厂面试高频题算法练习冲刺训练 华为OD算法/大厂面试高频题算法冲刺训练目前开始常态化报名目前已服务100同学成功上岸 课程讲师为全网50w粉丝编程博主吴师兄学算法 以及小红书头部编程博主闭着眼睛学数理化 每期人数维持在20人内保证能够最大限度地满足到每一个同学的需求达到和1v1同样的学习效果 60天陪伴式学习40直播课时300动画图解视频300LeetCode经典题200华为OD真题/大厂真题还有简历修改、模拟面试、专属HR对接将为你解锁 可上全网独家的欧弟OJ系统练习华子OD、大厂真题 可查看链接 大厂真题汇总 OD真题汇总(持续更新) 绿色聊天软件戳 od1336了解更多