C++实现闪点裂隙传送距离排序与去重输出
### 🍭思路分析 本题的主要任务是对输入的`n`个整数进行排序,去重后按从大到小的顺序输出最大的五个数,如果不足五个数,则输出所有不重复的数。可以使用`set`来自动去重并排序,`set`会按照元素的大小自动排序,且元素唯一。 ### 🔧代码实现 ```cpp #include <iostream> #include <set> #include <algorithm> int main() { int n; std::cin >> n; std::set<int, std::greater<int>> distances; // 使用set自动去重并按从大到小排序 for (int i = 0; i < n; ++i) { int distance; std::cin >> distance; distances.insert(distance); } int count = 0; for (auto it = distances.begin(); it != distances.end(); ++it) { if (count > 0) { std::cout << " "; } std::cout << *it; ++count; if (count == 5) { break; } } std::cout << std::endl; return 0; } ``` ### 📝代码解释 1. **输入处理**:首先读取整数`n`,表示闪点裂隙的个数。然后使用`for`循环读取`n`个整数,并将它们插入到`set`中。`set`会自动去重并按从大到小的顺序排序。 2. **输出处理**:使用`for`循环遍历`set`,输出元素。使用`count`变量记录已经输出的元素个数,当`count`达到5时,停止输出。 ### ⚙️复杂度分析 - **时间复杂度**:插入元素到`set`的时间复杂度为$O(n log n)$,遍历`set`的时间复杂度为$O(k)$,其中$k$是输出的元素个数,最多为5。总的时间复杂度为$O(n log n)$。 - **空间复杂度**:`set`最多存储`n`个元素,因此空间复杂度为$O(n)$。 ### 💡开发建议 - **错误处理**:可以添加输入验证,确保输入的`n`在指定范围内,以及输入的整数符合要求。 - **扩展性**:如果需要处理更多的需求,例如输出前`k`个数,可以将`5`改为一个变量,由用户输入。 ######[AI写代码神器 | 587点数解答 | 2026-05-16 20:29:29]
- 易语言代码优化:自动出售物资子程序整合与优化全解析(DeepSeek | 2181点数解答 | 2025-07-23 10:26:29)245
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)390
- Matlab 实现遗传算法求解图最短路径:参数设置与关键操作解析(字节豆包 | 128点数解答 | 2024-11-25 02:48:03)216
- MATLAB代码:修正遗传算法初始化种群代码,解决潜在错误(字节豆包 | 360点数解答 | 2024-11-25 02:48:49)209
- C++代码实现计算骑行总时间及详细解析(字节豆包 | 460点数解答 | 2026-03-03 19:51:23)38
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)359
- Python 实现:四位数重组求最大最小数差值(字节豆包 | 144点数解答 | 2026-02-01 12:49:54)43
- Python 代码求解:小明当选 Y 国总统至少需多少选民支持?(字节豆包 | 207点数解答 | 2026-02-01 12:51:14)51
- 拍卖干草:如何定价才能收益最大化?(DeepSeek | 1171点数解答 | 2026-02-23 21:10:09)45
- 计算分组乘船最重重量和的代码实现(字节豆包 | 485点数解答 | 2026-03-28 20:14:08)18
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)378
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)371