zoukankan      html  css  js  c++  java
  • 找水王

      要求:

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

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

      思路:既然水网帖子是一半以上,并且每贴必回,有这些要求,可以使用消除法来找水王,一个一个消除,消除到最后剩下的一定是水王。

      代码:

    public class Find {
        public static void main(String[] args) {
    
            int arr[]= {001,002,001,003,001,002,001,003,001,002,001};
            int len=8;
            FindMostData(arr, len);
       }
        public static void FindMostData(int arr[], int len)
        {
            int findNum = 0; // 出现次数超过一半的数;
            int count = 0; // 只要最终count > 0,那么对应的findNum就是出现次数超过一半的数;
    
            // 循环过程中,i每增加一次,就相当于把i之前的所有元素(除了满足“findNum == arr[i]”条件的arr[i],这些对应元素用“count++”来标记)都抛弃了,但是之后每当执行一次“ count-- ”时,又会从前面这些已保留的且等于findNum的元素中删除一项,直到count == 0,再重选findNum;
            for (int i = 0; i < len; i++)
            {
                if (count == 0) // count为0时,表示当前的findNum需要重选;
                {
                    findNum = arr[i];
                    count = 1;
                }
                else
                {
                    if (findNum == arr[i])
                        count++;
                    else
                        count--;
                }
            }
    
            System.out.println(findNum);
        }
    
    }
  • 相关阅读:
    生成流畅文本方法
    KNNImputer:一种可靠的缺失值插补方法
    SparseNN中的优化
    基于TorchText的PyTorch文本分类
    蒙特卡洛方法分析Web页面浏览量
    D. Segment Intersections 模拟
    B. Array Walk
    线性基 P3857 [TJOI2008]彩灯
    线性基 P4570 [BJWC2011]元素
    线性基的学习+总结
  • 原文地址:https://www.cnblogs.com/msdog/p/11061132.html
Copyright © 2011-2022 走看看