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

    问题:

    •三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
    •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
    解题思想

    寻找水王,简化为在id数组中找出id出现次数超过一半的id,本来自己想着直接遍历一遍,如此时间复杂度会很高,老师给出了较为方便得算法提示,于是得出主要算法思想:在id数组中,如果遇到两个相邻的不相等的数,就删除掉,最后数组中剩下的数就是水王的ID
     
    源代码:
     1 #include<iostream>
     2 #include<string>
     3 using namespace std;
     4 int main()
     5 {
     6     //建立数组
     7     string id[100];
     8     int i, k,number;
     9     string water_king;
    10     cout << "请输入帖子个数:";
    11     cin >> number;
    12     cout << "输入发帖id:";
    13     for ( i = 0; i < number; i++)
    14     {
    15         cin >> id[i];
    16     }
    17     
    18     //删除二者
    19     while (id[i] !=id[i+1])
    20     {
    21         for (k = i+2; k < number; k++)
    22         {
    23             id[k - 2] = id[k];
    24         }
    25     }
    26     //剩余元素为水王id
    27     water_king = id[0];
    28     cout << "水王为:"<<water_king;
    29     return 0;
    30 }

    结果:

     总结:

    一开始没有考虑到如果各个id都是不一样的,那么数组中元素就会被删除完,不设置上限的数组还没看懂,弄明白以后会改正,还望各位同学老师有空时指点一二

  • 相关阅读:
    struts2乱码
    修改maven的war包生成路径
    cookie的坑
    linux jps 命令
    (转)如何使VMware ip与本机ip处于同一网段
    springboot + swagger2 学习笔记
    can not find java.util.map java.lang.Double问题
    为什么不写 @RequestParam 也能拿到参数?
    乱码问题
    PostMan的使用注意事项
  • 原文地址:https://www.cnblogs.com/brucekun/p/5510103.html
Copyright © 2011-2022 走看看