• 20200903--直方图(奥赛一本通P85 14)


    给定一个非负整数数组,统计里面每一个数的出现次数,我们只统计到数组里最大的数。

    假设Fmax(Fmzx<10000)是数组中最大的数,那么我们只统计{0,1,2,...Fmax)里每个数出现的次数。

    输入:第1行n(1<=n<=10000)是数组的大小

    紧接着一行是数组的n个元素。

    输出:按顺序输出每个数的出现次数,利用桶排原理,一行一个数,如果没有出现过,则输出0

               对于例子中的数组,最大的数是3,因此我只统计{0,1,2,3}的出现频率。

    样例输入:

    5

    1 1 2 3 1

    样例输出:

    0  0

    1  3  

    2  1

    3  1

    1、自己解法

    #include <cstdio> //std io
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <cstring>
    using namespace std;
    int l[10000];//桶排后的元素表
    int main()
    {
      int n;//元素数
      int m[10000];//输入的元素
      int max1=0;//求m中的最大值
      printf("请输入元素数:");
      scanf("%d",&n);
      for(int i=1;i<=n;i++)
        {
          cin>>m[i];
          if(m[i]>max1)
            {
              max1=m[i];
            }
          }
      int jzj=0;
      memset(l,0,sizeof(l+1));
      for(int j=1;j<=n;j++)
        {
          if(m[j]!=0)
            {
              l[m[j]+1]++;
            }
        }

      for(int i=0;i<=max1;i++)
         {
            printf("%d ",i);
            printf("%d ",l[i+1]);
        }
      return 0;

    }

    2、书上解法

    #include <cstdio> //std io
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <cstring>
    using namespace std;
    int l[10000];//桶排后的元素表
    int main()
    {
      int n;//元素数
      int m[10000],l[10000];//输入的元素
      int max1=0;//求m中的最大值
      printf("请输入元素数:");
      scanf("%d",&n);
      for(int i=1;i<=n;i++)
        {
          cin>>m[i];
          l[m[i]]++;
          if(max1<m[i])
            {max1=m[i];
            }
        }
        for(int i=0;i<=max1;i++)
          {
            printf("%d ",i);
            printf("%d ",l[i]);
        }
        return 0;

    }

  • 相关阅读:
    jQuery对DOM节点进行操作(插入节点之在元素内部插入)
    jQuery对DOM节点进行操作(创建节点)
    jQuery对元素值操作
    jQuery对元素内容操作-->对HTML内容的操作
    jQuery对元素内容操作-->对文本内容的操作
    jQuery对元素内容操作
    jQuery选择器-->注意事项
    jQuery选择器-->表单选择器
    cp 快捷命令:复制文件到多个目录
    Python-字符串
  • 原文地址:https://www.cnblogs.com/whcsrj/p/13605466.html
Copyright © 2020-2023  润新知