找水王

一.题目:

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

二.设计思想:

水王的帖子超过一半,所以从头开始遍历,如果名字相同,就将两个存在同一个数组,最后比较名字相同最多的就是水王。

三.代码:

package shui;

import java.util.Scanner;

public class shui 
{
    public static void main(String[] args) 
    {
        int shu[]=new int[100];
        int k=0;
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入ID:");
        String a=scanner.next();
        if(a.equals("#")) System.out.println("您什么都没有输入,故没有水王!");
        else
        {
            shu[k]=Integer.parseInt(a);
            k++;
            a=scanner.next();
            while(!a.equals("#"))
            {
                shu[k]=Integer.parseInt(a);
                k++;
                a=scanner.next();
            }
            
            System.out.println("水王的ID为:"+zhao(shu,k));
        }
    }

    public static int zhao(int[] a,int k)
    {
        int l=k;
        int n=0;
        boolean nn=false;
        for(int i=l-1;i>=0;i=i-2)
        {
            for(int j=i-1;j>=0;j--)
            {
                if(a[i]!=a[j])
                {
                    if(j!=i-1)  a[j]=a[i-1];
                }
                else 
                {
                    nn=true;n=a[i];
                }
            }
            if(nn==true) break;
        }
        n=a[0];
        return n;
    }
}

四.实验截图:

原文地址:https://www.cnblogs.com/gong123/p/6729117.html