酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++实现统计每个位置前面较小元素个数

根据题目描述,这是对输入序列进行某种特定操作后输出。从样例看,输入 6 个数字 `4 3 0 5 1 2`,输出 `0 0 0 3 1 2`,推测规则可能是:将每个数字改为其前面比它小的数字个数(即逆序数中“前面小于当前”的计数),但验证一下: - 第1个4,前面没有数,计0 → 输出0 - 第2个3,前面小于3的只有0个(4>3),计0 → 输出0 - 第3个0,前面小于0的没有,计0 → 输出0 - 第4个5,前面小于5的有4,3,0共3个 → 输出3 - 第5个1,前面小于1的只有0一个 → 但输出是1?检查:前面小于1的只有0,计1 → 输出1 - 第6个2,前面小于2的有0,1共2个 → 输出2 这样与样例完全吻合。因此本题是求每个位置前面比当前元素小的个数。 ## 🧮 实现思路 遍历每个位置 i,统计 j<i 且 a[j] < a[i] 的个数,直接输出。 ## 💻 C++ 代码 ```cpp #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } vector<int> res(n, 0); for (int i = 0; i < n; i++) { int cnt = 0; for (int j = 0; j < i; j++) { if (a[j] < a[i]) cnt++; } res[i] = cnt; } for (int i = 0; i < n; i++) { if (i) cout << " "; cout << res[i]; } cout << endl; return 0; } ``` ## 🔍 复杂度分析 时间复杂度 O(n²),n<100 完全可行。空间复杂度 O(n)。 ######[AI问答 | 510点数解答 | 2026-08-08 19:11:41]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]