PTA习题

博客介绍了如何利用C++中的set数据结构解决PTA上的一道习题,该题要求输出顺序读入的整数中的不重复元素。博主通过解析set的特性,指出其能自动排除重复元素,给出利用set判断和存储不重复整数的解题思路,并强调unordered_set的无序性不适合此题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7-6 输出不重复的数组元素

本题要求编写程序,对顺序读入的n个整数,顺次输出所有不重复的整数,即每个数只能输出一次。

输入格式:

输入的第一行给出正整数n(1≤n≤20)。随后一行给出n个整数,其间以空格分隔。

输出格式:

顺次输出所有不重复的整数。数字间空一格,行末不得有多余空格。

输入样例:

在这里给出一组输入。例如:

10
1 2 3 4 5 1 3 1 8 9

输出样例:

在这里给出相应的输出。例如:

1 2 3 4 5 8 9

看了下网上其他的解法,不外乎循环,这里提供一种新的思路,利用set。

我们都知道set是集合的意思,根据集合的定义,不能有重复的元素,非常符合我们这道题的性质。在我们输入的过程中,这个set会自动排除重复的元素。

所以我们只需要在向set输入数据的时候就能够判断出这个数据是否重复,也就是下面的if语句。如果是没有出现过的数据,那么find方法就会返回一个容器末尾的迭代器(注意find的查找范围是[first, end)也就是左闭右开区间,有点像数组下标个数组元素个数这两个数字的关系),满足这个条件后就可以把新数据插入set中,这样下次再出现相同的数字时候就知道是重复了的;同时也把这个数据录入到存储结果的数组中去,这样就是题目所要求的结果了。

这里值得注意的是,虽然有一种容器叫做unordered_set,但是不能用来解这道题,

### 解决 VSCode 使用 SSH 连接远程服务器时出现超时问题 当遇到 VSCode 通过 SSH 连接到远程服务器时提示 `Connecting with SSH timed out` 的错误,可以通过调整 VSCode 和 SSH 配置来解决问题。 #### 修改 VSCode Remote-SSH 扩展设置 一种有效的方法是修改 VSCode 中的 Remote-SSH 插件配置。具体操作如下: 点击左侧活动栏中的扩展图标,找到并选中已安装的 "Remote - SSH" 扩展项。接着点击右侧的小齿轮按钮,在弹出菜单中选择「Extension Settings」即插件设置选项[^3]。随后在设置界面内定位至 "Edit in settings.json" 并进行编辑。确保 JSON 文件中有以下字段存在,并将其值设为 true: ```json { "remote.SSH.useLocalServer": true, } ``` 此更改有助于优化本地与远端之间的通信效率,从而减少因网络延迟造成的连接中断风险[^4]。 #### 调整 SSH 客户端参数 除了上述方法外,还可以尝试增加 SSH 客户端的心跳保持时间(KeepAlive),防止由于长时间无数据传输而导致断开连接的情况发生。这通常涉及到对用户级或全局级别的 SSH 配置文件做出相应改动。对于 Linux 或 macOS 用户来说,默认情况下这些配置位于 ~/.ssh/config;而对于 Windows,则取决于 OpenSSH 的安装位置。 向该配置文件追加下面的内容可以帮助维持稳定的会话状态: ```bash Host * ServerAliveInterval 60 TCPKeepAlive yes ``` 这段配置使得每分钟发送一次心跳包给服务端确认链接存活状况,同时启用TCP层面的保活机制以增强稳定性[^1]。 #### 清理缓存重试 如果之前的操作未能奏效,考虑清理可能存在的残留数据再做尝试。针对 Mac OS 系统而言,可按照下述路径移除本地存储的相关扩展资料 `/Users/<用户名>/.vscode/extensions/` ,以及远程主机上的 `.vscode-server/` 目录下的所有内容 。完成清除工作之后,利用快捷键组合 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac),输入命令 “Kill VS Code Server on Host”,执行完毕后再次发起新的 SSH 请求试试看效果如何[^5]。 以上措施综合运用能够显著改善 VSCode 透过 SSH 实现远程开发环境构建过程中的成功率和流畅度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值