C++ 实现计算每只小蝎子左边能量值比它低的小蝎子数量
以下是解决该问题的 C++ 代码: ```cpp #include <iostream> #include <vector> using namespace std; // 该函数用于计算每只小蝎子左边能量值比它低的小蝎子数量 vector<int> countSmallerOnLeft(const vector<int>& energyValues) { int n = energyValues.size(); vector<int> result(n, 0); // 初始化结果数组,每个元素初始值为 0 // 遍历每只小蝎子 for (int i = 0; i < n; ++i) { int count = 0; // 遍历当前小蝎子左边的所有小蝎子 for (int j = 0; j < i; ++j) { if (energyValues[j] < energyValues[i]) { ++count; // 如果左边的小蝎子能量值比当前小蝎子低,计数器加 1 } } result[i] = count; // 将计数器的值存入结果数组 } return result; } int main() { int n; cin >> n; // 读取小蝎子的数量 vector<int> energyValues(n); for (int i = 0; i < n; ++i) { cin >> energyValues[i]; // 读取每只小蝎子的能量值 } vector<int> result = countSmallerOnLeft(energyValues); // 输出结果 for (int i = 0; i < n; ++i) { if (i > 0) { cout << " "; // 除了第一个元素,每个元素前输出一个空格 } cout << result[i]; } cout << endl; return 0; } ``` ### 代码解释: 1. **`countSmallerOnLeft` 函数**: - 该函数接受一个整数向量 `energyValues` 作为参数,表示每只小蝎子的能量值。 - 首先,创建一个与 `energyValues` 大小相同的结果向量 `result`,并将其所有元素初始化为 0。 - 然后,使用两层循环遍历每只小蝎子。外层循环遍历每只小蝎子,内层循环遍历当前小蝎子左边的所有小蝎子。 - 对于每只小蝎子,统计其左边能量值比它低的小蝎子数量,并将结果存入 `result` 向量中。 - 返回 `result` 向量。 2. **`main` 函数**: - 读取小蝎子的数量 `n`。 - 读取每只小蝎子的能量值,并存储在 `energyValues` 向量中。 - 调用 `countSmallerOnLeft` 函数,计算每只小蝎子左边能量值比它低的小蝎子数量。 - 输出结果,每个数字之间用空格隔开。 ### 复杂度分析: - **时间复杂度**:$O(n^2)$,其中 $n$ 是小蝎子的数量。因为需要使用两层循环遍历每只小蝎子。 - **空间复杂度**:$O(n)$,主要用于存储结果向量。 ######[AI问答 | 747点数解答 | 2026-03-21 15:38:53]
- 易语言读取文本文件并显示到超级列表框:代码示例与注意要点(DeepSeek | 571点数解答 | 2025-08-23 20:54:40)221
- 易语言:读取并显示特定文本到超级列表框,还能增加新数据的方法与要点(DeepSeek | 1317点数解答 | 2025-08-23 20:58:40)228
- mallshop商城网站:数据库设计与强大业务功能全揭秘(GPT | 257点数解答 | 2024-12-09 14:08:15)273
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)342
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)310
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)65
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)24
- 用Python处理商品销售数据:替换类别、合并类目并输出前5行(百度文心 | 486点数解答 | 2024-08-23 09:14:21)309
- Python 破解:计算序列中满足特定取余条件元素的数量(字节豆包 | 174点数解答 | 2025-05-13 21:29:55)185
- 一文搞定!无名杀“再生安瓿”技能代码全解析及注意事项(字节豆包 | 464点数解答 | 2025-06-15 20:06:30)159
- C# 实现商品类:数量限制 100 及开发注意要点(字节豆包 | 737点数解答 | 2025-09-03 14:44:56)99
- 易语言多线程实战:获取进程信息、读写内存与多线程协同操作(字节豆包 | 790点数解答 | 2025-11-28 03:08:24)38