当前位置: 首页 > news >正文

HJ3 明明的随机数【牛客网】

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
    • 3.1 快排+去重
    • 3.2 散列
  • 四、参考代码
    • 4.1 快排+去重
    • 4.2 散列

零、原题链接


HJ3 明明的随机数

一、题目描述

在这里插入图片描述

二、测试用例

在这里插入图片描述

三、解题思路

3.1 快排+去重

  1. 基本思路:
      先将序列进行快速排序,然后将重复的数字删除。
  2. 具体思路:
    • 将序列排序;
    • 遍历序列,每次遍历到新的元素,打个标记,后续遍历时,如果遍历到的元素与标记元素不相同,则更新标记且输出该元素。

3.2 散列

  1. 基本思路:
      将序列的元素按照元素本身进行散列,然后按照顺序进行输出即可。
  2. 具体思路:
    • 将序列排序;
    • 遍历序列,每次遍历到新的元素,打个标记,后续遍历时,如果遍历到的元素与标记元素不相同,则更新标记且输出该元素。

四、参考代码

4.1 快排+去重

时间复杂度: O ( n l o g n ) \Omicron(nlog\;n) O(nlogn)【快排的复杂度】
空间复杂度: O ( n ) \Omicron(n) O(n)

#include <functional>
#include <iostream>
#include <vector>
using namespace std;int main() {int n;cin >> n;vector<int> ans(n);for (int i = 0; i < n; i++) {cin >> ans[i];}sort(ans.begin(), ans.end(), less<int>());int i = 0;cout << ans[0] << endl;for (int j = 1; j < n; j++) {if (ans[i] != ans[j]) {i = j;cout << ans[i] << endl;}}
}
// 64 位输出请用 printf("%lld")

4.2 散列

时间复杂度: O ( n ) \Omicron(n) O(n)【散列元素的复杂度】
空间复杂度: O ( 1 ) \Omicron(1) O(1)【散列表的空间为常数级】

#include <functional>
#include <iostream>
#include <vector>
using namespace std;int main() {const int max = 501;int n;cin >> n;vector<bool> m(max);int t;for (int i = 0; i < n; i++) {cin >> t;m[t] = true;}for (int i = 0; i < max; i++) {if (m[i])cout << i << endl;}
}
// 64 位输出请用 printf("%lld")
http://www.dtcms.com/a/200901.html

相关文章:

  • 常见提示词攻击方法和防御手段——提示词越狱
  • 同一颗太阳:Australia、Austria、Arab、Africa、Augustus、August、Aurora、Athena
  • LeetCode 1306. 跳跃游戏 III(中等)
  • 网络-MOXA设备基本操作
  • Python测试单例模式
  • ubuntu系统 | dify+ollama+deepseek搭建本地应用
  • gcc: attribute: packed
  • FEKO许可证与多用户共享
  • day 21 常见降维算法
  • CPP之动态内存管理以及模板初阶
  • 第三十九节:视频处理-光流法 (Lucas-Kanade, Dense)
  • 计算机存储与数据单位的核心定义及换算逻辑
  • 深度解析 MCP:重新定义 API 的开发范式
  • CSS attr() 函数详解
  • Srinath多元假设检验 (Multiple-hypothesis Testing)(To 廖老师)
  • SpringBoot(二)--- SpringBoot基础(http协议、分层解耦)
  • flask蓝图的导入与注册
  • 宇宙漂流的时间胶囊:我用 CodeBuddy 实现了一个「太空感」单页应用
  • 【C语言内存函数】--memcpy和memmove的使用和模拟实现,memset函数的使用,memcmp函数的使用
  • java笔记07
  • SAP系统的委外业务是什么?委外采购(标准委外)与工序外协的区别有哪些?
  • leetcode hot100刷题日记——3.移动零
  • 【Nginx学习笔记】:Fastapi服务部署单机Nginx配置说明
  • laravel 通过Validator::make验证后,如何拿到验证后的值
  • Kali安装配置JAVA环境和切换JDK版本的最详细的过程
  • 自己拥有一台服务器可以做哪些事情
  • AI自媒体封面生成系统
  • 图像分割(2)u-net代码实战——基于视网膜分割
  • ubuntu open shh9.9安装
  • 系统思考:动态性复杂