C++ 排序后同位置取最大值实现(橙色闪点密码破解题解)
根据题目要求,我们需要将奇数和偶数分别从小到大排序,然后在每个位置上比较奇数与偶数对应位置的数值,取较大者输出。题目明确要求使用 `sort` 和 `max` 函数。 --- ## 🛠️ 解题思路 1. **输入读取**:读取整数 `n`,随后依次读取 `n` 个奇数存到数组 `odd`,再读取 `n` 个偶数存到数组 `even`。 2. **排序**:分别对 `odd` 和 `even` 数组使用 `sort` 函数(默认升序)。 3. **逐位比较**:遍历索引 `i` 从 `0` 到 `n-1`,对 `odd[i]` 与 `even[i]` 调用 `max` 函数,得到该位置的最大值。 4. **输出**:按序输出结果,数字间用空格分隔。 --- ## 💻 完整 C++ 代码(使用 max 和 sort) ```cpp #include <iostream> #include <algorithm> // 提供 sort 和 max using namespace std; int main() { int n; cin >> n; int odd[100], even[100]; // 根据 n < 100 定义足够大的数组 // 输入 n 个奇数 for (int i = 0; i < n; i++) { cin >> odd[i]; } // 输入 n 个偶数 for (int i = 0; i < n; i++) { cin >> even[i]; } // 分别排序 sort(odd, odd + n); sort(even, even + n); // 逐位比较并输出最大值 for (int i = 0; i < n; i++) { int result = max(odd[i], even[i]); if (i > 0) { cout << " "; // 数字间用空格分隔 } cout << result; } cout << endl; return 0; } ``` --- ## 📝 代码说明 - **`sort(odd, odd + n)`**:对数组区间 `[odd, odd+n)` 进行升序排序。这里 `odd` 是数组首地址,`odd+n` 是尾后地址。 - **`max(odd[i], even[i])`**:标准库函数,返回两个整数中较大的一个。 - **数组大小**:题目限定 `1 < n < 100`,因此 `odd[100]` 和 `even[100]` 足够使用。若希望更安全,可以用 `vector<int>`,但题目建议使用两个数组,这里按题目要求实现。 - **输出控制**:避免多余空格,采用先判断 `i > 0` 再输出空格的方式。 --- ## ⚠️ 注意事项 - 必须包含 `<algorithm>` 头文件,否则 `sort` 和 `max` 都无法使用。 - 输入数据保证奇数、偶数数量均为 `n`,不需要额外处理。 - 排序后数组已经按升序排列,因此第 `i` 个位置对应的是排序后的第 `i` 个奇数/偶数,符合题意。 --- ## 🔍 样例验证 **样例1**: - 输入: ``` 4 1 13 3 9 4 8 2 10 ``` - 排序后:奇数 `[1, 3, 9, 13]`,偶数 `[2, 4, 8, 10]` - 逐位比较:`max(1,2)=2`,`max(3,4)=4`,`max(9,8)=9`,`max(13,10)=13` - 输出:`2 4 9 13` ✅ **样例2**: - 输入: ``` 3 9 5 3 2 8 10 ``` - 排序后:奇数 `[3, 5, 9]`,偶数 `[2, 8, 10]` - 逐位比较:`max(3,2)=3`,`max(5,8)=8`,`max(9,10)=10` - 输出:`3 8 10` ✅ --- ## 🚀 扩展建议 - 如果 `n` 较大(如百万级),建议改用 `vector<int>` 和 `std::sort`,避免固定数组的栈溢出风险。 - 本解法时间复杂度为 **O(n log n)**(排序主导),空间复杂度为 **O(1)**(不计算输入存储)。 - 练习时可用 `#include <bits/stdc++.h>` 代替多个头文件,但正式竞赛中建议显式包含所需头文件以提升编译效率。 ######[AI写代码神器 | 1071点数解答 | 2026-08-21 21:55:42]
- 数轴旅行:从原点出发,能否到达目标位置?(字节豆包 | 225点数解答 | 2026-01-23 19:51:03)139
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)563
- C++实现:计算两位正整数十位与个位数字之和(附代码详解与复杂度分析)(字节豆包 | 352点数解答 | 2026-01-16 23:00:07)157
- 地下水及地基土腐蚀性分析:从代码优化到逻辑完善的全面攻略(DeepSeek | 498点数解答 | 2025-06-08 21:49:49)276
- 礼盒多级排序:总价→最贵→最便宜→编号的 Python 实现与详解(阿里通义 | 1000点数解答 | 2026-03-16 12:13:21)103
- Python Pygame实现多彩球碰撞游戏及开发要点(字节豆包 | 1610点数解答 | 2026-06-09 08:53:34)40
- 使用Pygame实现球碰撞游戏及颜色生成功能(字节豆包 | 1627点数解答 | 2026-06-09 08:55:02)39
- 使用Pygame实现多彩球碰撞游戏及开发建议(字节豆包 | 1712点数解答 | 2026-06-09 14:38:46)42
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)477
- Python Tkinter 代码剖析:GUI 程序搭建与窗口居中函数解析(字节豆包 | 314点数解答 | 2024-08-02 14:49:22)390
- 巧用 CDN 搭建含照片轮播、社交链接与 AI 对话的单页个人网页(字节豆包 | 485点数解答 | 2024-10-28 23:31:13)312
- 巧用 CDN 搭建单页个人网页:含照片轮播、社交链接与 AI 对话界面 (阿里通义 | 1752点数解答 | 2024-10-28 23:32:45)315