题解
删除试题
1 条题解
-
0
解题思路
读入 n 道题的难度,再读入要删除的难度
x。把 n 道题依次检查一遍:难度等于
x的题目跳过不输出,其余的正常输出。输出时注意空格格式:题目要求输出的一行数字之间用一个空格隔开。可以用一个
bool变量first来帮忙——第一个输出的数字前面不加空格,之后的每个数字前面先输出一个空格。参考代码
// P4489 删除试题:把难度为x的试题删掉,输出剩下的试题难度 #include <iostream> using namespace std; int a[1005]; // 存储每道题的难度 int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; // 读入n道题的难度 int x; cin >> x; // 要删除的难度 bool first = true; // 控制空格:第一个输出的数前面不加空格 for (int i = 0; i < n; i++) { if (a[i] == x) continue; // 难度等于x,跳过不输出 if (!first) cout << " "; // 不是第一个数,前面加空格 cout << a[i]; first = false; } cout << endl; return 0; }复杂度分析
只需要把 n 道题从前到后遍历一遍,时间复杂度 O(n),用一个数组存难度,额外空间 O(n)。
- 1