top1编程
← 返回题目
题解

美人松的高度

1 条题解

  • 0
    @ 2026-8-5 1:04:44

    解题思路

    题目问的是:高度正好等于 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