• 寻找“水王(WaterKing)”


    问题重述:三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

    如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    设计思路:水王嘛,整个论坛属他的发帖数最多,所以我们首先对论坛中所有水友的ID号进行遍历分析,定义三个变量,其中一个变量对当前遍历到的水友的ID号进行记录,然后用另一个变量去记录第二位水友的ID号,如果两次记录相同,则第三个变量加一,一直遍历,因为水王发帖数最多,所以他的ID号一定可以PK掉其他水友,保持记录到最后

    代码实现:

    package com.java.fmd;
    
    public class waterking {
    
        public static void main(String[] args) {
            String[] ids={"001","004","001","004","001","004","001","004","001","001","003","003","001","003","003","003"};
            String[] result = Find(ids);
            for(int i = 0;i<result.length;i++){
                //System.out.println(result[i]);
            }
        }
        public static String[] Find(String[] ids){
            if(ids == null) return null;
            String candate0= null;
            String candate1= null;
            String candate2= null;
            int times0 = 0;
            int times1 = 0;
            int times2 = 0;
            int len = ids.length;
            for(int i =0;i<len;i++){
                if(times0==0&&ids[i]!=candate1&&ids[i]!=candate2){
                    candate0=ids[i];
                    times0++;
                }
                else if(times1==0&&ids[i]!=candate0&&ids[i]!=candate2){
                    candate1=ids[i];
                    times1++;
                }
                else if(times2==0&&ids[i]!=candate0&&ids[i]!=candate1){
                    candate2=ids[i];
                    times2++;
                }
                else if(ids[i]!=candate1&&ids[i]!=candate0&&ids[i]!=candate2){
                    times0--;
                    times1--;
                    times2--;
                }
                else if(ids[i]==candate0)
                    times0++;
                else if(ids[i]==candate1)
                    times1++;
                else if(ids[i]==candate2)
                    times2++;
            }
            String[] result = {candate0,candate1,candate2};
            System.out.println("水王:");
            System.out.println(candate2);
            return result;
        }
     
    }
  • 相关阅读:
    Android读书笔记三
    Android读书笔记二
    Android读书笔记一
    cpp plugin system
    houdini已放弃2
    ssh-keygen
    linux library
    software with plugin
    houdini已放弃
    C++ template
  • 原文地址:https://www.cnblogs.com/fuheishi/p/11056820.html
Copyright © 2020-2023  润新知