zoukankan      html  css  js  c++  java
  • 课堂练习之找水王

    一、题目要求

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

    二、解题思路

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

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

    三、程序源码

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int Find(int *a,int N)   //a代表数组,N代表数组长度
     5 {
     6     int wk;
     7     int ntimes,i;
     8     for(i=ntimes=0;i<N;i++)
     9     {
    10         if(ntimes==0)
    11         {
    12             wk=a[i],ntimes=1;
    13         }
    14         else
    15         {
    16             if(wk==a[i])
    17                 ntimes++;
    18             else
    19                 ntimes--;
    20         }
    21     }
    22     return wk;
    23 }
    24 
    25 int main()
    26 {
    27     cout<<"水王的ID为:";
    28     int a[5]={0,2,1,2,2};
    29     int *n=a;
    30     cout<<Find(a,5)<<endl;
    31     return 0;
    32 }

    四、运行截图

  • 相关阅读:
    软件设计中的立足点
    Clojure基础
    团队凝聚力
    执行力与领导力
    工作与生活
    分离焦虑OR责任焦虑
    保持激情
    立足点
    论研发管理--开篇
    初级码农常犯错误
  • 原文地址:https://www.cnblogs.com/yuji5656/p/4444344.html
Copyright © 2011-2022 走看看