水王

      

设计思想:

  顺序遍历这个列表,如果遍历到的帖子的作者的ID和列表的下一个帖子的作者ID相同,则有可能是水王,将ID记录,同时也将ID出现的次数记录,当遍历到的ID出现不相同时则将这两个ID都剔除(即将记录可能是水王的ID的出现次数减一,遍历到的下一个的ID跳过),如果记录的可能是水王的ID出现次数成为0,则寻找新的可能是水王的ID,最终记录的ID即为水王的ID

 

代码实现:

package zuoYe;

import java.util.Scanner;
/*
 * 寻找水王
 */
public class ShuiWang2 {
    public static void main(String[] args) {
        int[] a = null;//存储帖子id
                Scanner sc = new Scanner(System.in);
        System.out.println("帖子总个数:");
        int sum = sc.nextInt();
        a = new int[sum];
        System.out.println("输入每个帖子的作者:");
        for(int i = 0;i < sum;i++)
        {
            a[i] = sc.nextInt();
        }
        sc.close();
        int n = 0;
        int nid = -1;

        for(int i = 0;i < a.length - 1;i++)
        {
            if(n == 0)
            {
                if(a[i] == a[i + 1])
                {
                    n = 2;
                    nid = a[i];
                }
                else
                {
            
if((i + 1) == a.length - 1) { nid = a[a.length - 1]; } }
          i++; }
else { if(nid == a[i]) { n++; } else { n--; } } } System.out.println("水王的ID : " + nid); } }

 

 

个人总结:

  解决问题要找到规律,这样解决问题才能高效,按照原始方法虽然能够解决问题,但是效率大打折扣。 

posted @ 2017-04-19 15:43  liuxining  阅读(299)  评论(0编辑  收藏  举报