• 找水王


    设计思想:

      由题目我们知道了水王水贴的数目已经超过了一半,如果我采用了栈(数组)的思想。

    首先把第一个ID放进数组中,接着看下一个ID,如果与栈的顶层ID相同就继续放进栈里,

    如果不同,顶层栈ID就出栈(和不同的ID同归于尽了),然后接着看下一个ID。

    由于没有任何人可以消耗过水王,所以最终栈里剩的一定都是水王的ID,重复上面的操作,

    再把栈里的第一个ID(由于栈里所有的ID都是水王的了,所以随便取一个就行了)输出来,

    就把水王找出来了。

    代码展示: 

    //作者:徐浩军 日期:17/4/18
    //找出水王

    public
    class Water { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int a[]={2,3,4,4,4,4,45,1}; int b[]=new int [10]; int number=-1; int n=0; for(int i=0;i<a.length;i++){ if(number==-1){ number++; b[number]=a[i]; } else{ if(b[number]==a[i]){ number++; b[number]=a[i]; } else{ number--; } } } System.out.println(b[0]); } }

    结果截图:

    所有发帖人的 ID:

      

    水王的ID:

      

    个人总结:

      做这类题目时,一定要看好题目,仔细分析,用于尝试,错了没关系,

    关键是要敢想,敢做,这样的话,就能够解决很多问题。

  • 相关阅读:
    南邮NOJ Counter Attack
    南邮NOJ 计算机基础知识大赛4
    南邮NOJ 计算机基础知识大赛4
    南邮NOJ 计算机基础知识大赛4
    南邮NOJ 计算机基础知识大赛4
    南邮NOJ DDKFC
    南邮NOJ DDKFC
    南邮NOJ DDKFC
    南邮NOJ没有被接待的童鞋
    【POJ】2828 Buy Tickets
  • 原文地址:https://www.cnblogs.com/haojun/p/6729526.html
Copyright © 2020-2023  润新知