• 找水王


     

     

     

    //水王的思想就是抵消的思想,如果能想到抵消的思想, 还会使用栈或者list之类的,就会非常简单,因为成为水王的条件是发送信息的数量超过一半,也就意味着他跟其他的数抵消之后依然存在,这个实现起来也很容易,用栈可以实现,先压入一个#,然后

    //一个一个数进行判断,如果跟栈顶元素相同的话,那么就压入,如果不一样,就弹出栈顶元素。

    //原理,先将第一个数压入,然后比较,如果相同,那么就存起来,这样可以实现压入的数据的存储,当出现和栈顶元素不一样的数据时,那么就弹出一个栈顶元素,这样就可以抵消了,设想一下,如果

    //有一个数数量超过半数,南无他的在压入弹出的最后,存在栈中的肯定是这个数量超过半数的数,这时候这个数就是水王。

     

     

     

    package Demo;

    import java.util.Stack;

     

    public class Thebigwater {

           public static void main(String[]args)

           {

                  String[] a =new String[11];

                  a[0]="1";

                  a[1]="3";

                  a[2]="1";

                  a[3]="2";

                  a[4]="3";

                  a[5]="1";

                  a[6]="4";

                  a[7]="1";

                  a[8]="1";

                  a[9]="2";

                  a[10]="5";

                  String rs=select(a);

                  System.out.println(rs);

           }

           static String select(String[] a)

           {

                  Stack<String>save =new Stack<String>();

                  save.push("#");

                  for(int i=0;i<a.length;i++)

                  {

                         if(a[i].equals(save.peek())||save.peek().equals("#"))

                         {

                                save.push(a[i]);

                         }

                         else

                         {

                                save.pop();

                         }

                  }

                  String rs=save.pop();

                  return rs;

           }

    }

    实验截图:

     

    个人总结:这个题目交给了我们从多个角度去考虑问题,这个题应用了下棋中的换子的思想,从生活中寻找规律,问题将不再是问题。

  • 相关阅读:
    properties文件作用以及在哪些地方用
    UUID.randomUUID().toString() 的作用
    devops简介
    Redis数据库
    锁方面区别
    python如何操作git
    使用django实现websocket
    迁移与备份
    服务端主动给客户端推送消息
    使用vim登录root管理员用户显示su:鉴定故障
  • 原文地址:https://www.cnblogs.com/qingtianxt/p/7000532.html
Copyright © 2020-2023  润新知