思路:

首先,我们可以使用一个数组来记录每个数字出现的次数,数组的下标表示数字的取值,数组的值表示该数字出现的次数。

然后,遍历输入的50个数字,每次出现一个数字,就将该数字对应的数组值加1。

最后,找到数组中的最大值,即为相同数字出现的最多次数。

代码实现如下:

#include <iostream>
using namespace std;

int main() {
    int num[20] = {0}; // 用于记录每个数字出现的次数,下标表示数字的取值
    int maxCount = 0; // 相同数字出现的最多次数

    for (int i = 0; i < 50; i++) {
        int x;
        cin >> x;
        num[x]++; // 数字x出现的次数加1
        maxCount = max(maxCount, num[x]); // 更新最多次数
    }

    cout << maxCount << endl;

    return 0;
}

复杂度分析:

遍历输入的50个数字,时间复杂度为O(50),使用一个大小为20的数组记录每个数字出现的次数,空间复杂度为O(20)。因此,总的时间复杂度为O(50),总的空间复杂度为O(20)

【入门】数字出现次数暂无标签时间限制:CC++ 1000MS其他语言 2000MS内存限制:CC++ 16MB其他语言 32MB难度:中等出题人:描述有50个数0-19求这50个数中相同数字出现的最多次数为几次?输入描述50个数字输出描述1个数字即相同数字出现的最多次数用例输入 1 1 10 2 0 15 8 12 7 0 3 15 0 15 18 16 7 17 16 9 1 19 16 12

原文地址: http://www.cveoy.top/t/topic/iMn0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录