• 找水王01


    一、题目要求

        如果你有一张当前论坛的帖子列表,其中他帖子的作者ID也在其中,快速找出这个传说中的水王

    二、解题思路

    在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次数加1。 

    如果下一个数字和我们之前保存的数字不同,则次数减1。如果次数为零,我们需要保存下一个数字,并把次数重新设为1。

    三、程序源码:

    #include<iostream>
    using namespace std;
    
    int Find(int *a,int N)   //a代表数组,N代表数组长度
    {
        int wk;
        int ntimes,i;
        for(i=ntimes=0;i<N;i++)
        {
            if(ntimes==0)
            {
                wk=a[i],ntimes=1;
            }
            else
            {
                if(wk==a[i])
                    ntimes++;
                else
                    ntimes--;
            }
        }
        return wk;
    }
    
    int main()
    {
        cout<<"水王的ID为:";
        int a[5]={0,2,1,2,2};
        int *n=a;
        cout<<Find(a,5)<<endl;
        return 0;
    }
    

      

  • 相关阅读:
    spring boot 配置时区差别
    概率期望
    Euler函数与Euler定理
    素数&筛法
    等差子序列
    8.19 T2
    8.19 T1
    量化交易
    挺进

  • 原文地址:https://www.cnblogs.com/zjy666/p/5608440.html
Copyright © 2020-2023  润新知