题解
美人松的高度
1 条题解
-
0
解题思路
题目问的是:高度正好等于 k 的美人松有多少棵。
做法很直接:先把 n 棵松树的高度存进数组 h,再读入询问的高度 k, 然后从头到尾把数组扫一遍,凡是 h[i] == k 就把计数 cnt 加 1。 最后输出 cnt 就是答案;如果一棵都没有,cnt 是 0,输出 0。
参考代码
// 美人松的高度:问高度为k的美人松有多少棵,数一遍即可 #include <iostream> using namespace std; int h[1000005]; int main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> h[i]; // 存下每棵松树的高度 int k; cin >> k; int cnt = 0; for (int i = 0; i < n; i++) if (h[i] == k) cnt++; // 高度正好是k就+1 cout << cnt << endl; return 0; }复杂度分析
把 n 棵松树扫描一遍,时间复杂度 O(n)。数组存 n 个高度,空间复杂度 O(n)。
- 1