课题作业之水王

这个小程序的编写时我们两人小组第三次合作完成的,随着前两次项目的开发,这次作业的完成相对比较顺利,两个人的默契程度提高了不少;

作业要求:找出在贴吧中真正的水王(发帖及回帖数超过所有帖子的一半),时间复杂度小于等于O(n);

设计思路:最开始的时候想着用遍历所有数组里的数据统计比较完成,发现时间复杂度较高,之后通过讨论发现,因为水王发帖个数超过,如果通过比较不同消去的方法就可以实现了,我们因此采用了栈的思想实现了消去的过程;

代码如下:

import java.util.Stack;
public class Water {
    public static void main(String[]args)
    {
        String[] a ={"1","1","1","1","2","2","2"};
        String waterwang=select(a);
        System.out.println("水王:");
        System.out.println(waterwang);
    }
    static String select(String[] a)
    {
        Stack<String> s =new Stack<String>();
        s.push("#");
        for(int i=0;i<a.length;i++)
        {
            if(a[i].equals(s.peek())||s.peek().equals("#"))
            {
                s.push(a[i]);
            }
            else
            {
                s.pop();
            }
        }
        String rs=s.pop();
        return rs;
    }
}

  

posted on 2017-04-18 19:57  发酸的土豆  阅读(133)  评论(0编辑  收藏  举报