码迷,mamicode.com
首页 > 其他好文 > 详细

找水王

时间:2015-06-11 16:45:32      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

要求:一个变量计数a>n/2n/2,参数赋值,复杂度为n

思路:遍历统计数目,因为每个帖子都有它的id,找其中的一个帖子,记录它的全部id,并与其他帖子id进行比较,如果id相同,然后累加进行计数,当遍历全部进行完毕,则将最后的计数与n/2进行比较,如果不大于n/2,归零,如果大于n/2,则记录下棋id

代码:

#include<iostream>

#define MAXSIZE 100

#define OK 1

#define OVERFLOW -2

using namespace std;

typedef struct {    

int *base;    

int *top;    

int stacksize;

}SqStack; i

nt  InitStack(SqStack &S) {   

S.base=new int [MAXSIZE];   

if(!S.base) exit(OVERFLOW);   

S.top=S.base;   

S.stacksize=MAXSIZE;    

return OK;

}

int main() {    

int ID[MAXSIZE],k=0,n;  

cout<<"请输入所有的ID号:(以-1结束)"<<endl;    

for(int j=0;;j++)     {           

          cin>>n;  

         if(n==-1)             break;            

         ID[j]=n;         k++;    

    }    

   int e;    

  SqStack S;    

InitStack(S);

for(int i=0;i<k;i++)     {                

     if(S.top==S.base)         {            

            *S.top++=ID[i];        

                                         }        

     int num=*(S.top-1);        

     if(num!=ID[i+1]&&i<k-1)         {            

                     e=*--S.top;            

                       i++;         }        

        else         {        

            *S.top++=ID[i+1];        

              }        

      if(i==k-2)         {           

           num=*(S.top-1);            

         cout<<"水王的Id号为:"<<endl;            

         cout<<num<<endl;        

                 }    

              }    

     return 0;

}

截图:

技术分享

总结:学会如何使用栈

找水王

标签:

原文地址:http://www.cnblogs.com/mingning/p/4569273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!