编程之美-寻找发帖"水王"

寻找发帖水王 寻找发帖水王 题目: Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 立即下载
第一个简单的案例,一个家伙在论坛里每个人都回复了,其占所有帖子的总量超过了一半,快速找到这个ID

原文地址: http://www.java2000.net/p11239
  1. /**
  2.  * 编程之美-寻找发帖"水王"。<br>
  3.  * 每个帖子均有回复,总发帖量超过一半了。找出这个人的ID.
  4.  * 
  5.  * @author 赵学庆,Java世纪网(java2000.net)
  6.  * 
  7.  */
  8. public class T {
  9.   /**
  10.    * 查找ID.
  11.    * 
  12.    * @param id
  13.    *          所有帖子的作者ID
  14.    * @return
  15.    */
  16.   public static int find(int[] id) {
  17.     int rtn = Integer.MIN_VALUE;
  18.     int nTimes, i;
  19.     for (i = nTimes = 0; i < id.length; i++) {
  20.       if (nTimes == 0) {
  21.         rtn = id[i];
  22.         nTimes = 1;
  23.       } else {
  24.         if (rtn == id[i]) {
  25.           nTimes++;
  26.         } else {
  27.           nTimes--;
  28.         }
  29.       }
  30.     }
  31.     return rtn;
  32.   }
  33.   public static void main(String[] args) {
  34.     int[] id = { 2, 3, 4, 5, 1, 2, 1, 3, 5, 7, 31, 3, 2, 2, 1, 12, 4, 56, 23, 12, 4, 1, 3, 4,
  35.         2, 2, 1, 3, 1, 23, 1, 5, 3, 1, 3, 12, 1, 2, 1, 1, 1, 2, 2, 2 };
  36.     System.out.println(find(id));
  37.   }
  38. }

运行结果
1

寻找发帖"水王"的扩展问题,有3个ID,他们每个人的发帖量都超过了1/4,找到这3个新的"水王"

原文地址:
http://www.java2000.net/p11241
  1. import java.util.Arrays;
  2. /**
  3.  * 编程之美-查找超过1/4的3个ID-"发帖水王"扩展问题。<br>
  4.  * 每个帖子均有回复,总发帖量超过一半了。找出这个人的ID.
  5.  * 
  6.  * @author 赵学庆,Java世纪网(java2000.net)
  7.  * 
  8.  */
  9. public class TT {
  10.   /**
  11.    * 查找最多的三个ID.
  12.    * 
  13.    * @param id
  14.    *          所有帖子的作者ID
  15.    * @return
  16.    */
  17.   public static int[] find2(int[] id) {
  18.     int[] rtn = new int[3];
  19.     int[] nTimes = new int[3];
  20.     int i;
  21.     for (i = 0; i < 3; i++) {
  22.       rtn[i] = 0;
  23.       nTimes[i] = 0;
  24.     }
  25.     for (i = 0; i < id.length; i++) {
  26.       out: for (int k = 0; k < 3; k++) {
  27.         for (int m = 0; m < 3; m++) {
  28.           if (rtn[m] == id[i]) {
  29.             break out;
  30.           }
  31.         }
  32.         if (nTimes[k] == 0) {
  33.           rtn[k] = id[i];
  34.           break;
  35.         }
  36.       }
  37.       for (int k = 0; k < 3; k++) {
  38.         if (rtn[k] == id[i]) {
  39.           nTimes[k] += 3;
  40.         } else if (nTimes[k] > 0) {
  41.           nTimes[k]--;
  42.         }
  43.       }
  44.     }
  45.     return rtn;
  46.   }
  47.   public static void main(String[] args) {
  48.     int[] id = { 2, 3, 4, 5, 1, 2, 1, 3, 5, 7, 31, 3, 2, 2, 1, 12, 4, 56, 23, 12, 4, 1, 3, 4,
  49.         2, 2, 1, 3, 1, 23, 1, 5, 3, 1, 3, 12, 1, 2, 1, 1, 1, 2, 2, 2 };
  50.     System.out.println(Arrays.toString(find2(id)));
  51.   }
  52. }

运行结果
[2, 1, 3]


波克 上海 Unity开发笔试题 2024 主要分为四部分,如果没有准备好,不要点击笔试链接,进入就会自动开始。 阅读详情

相关推荐

城市规划师必备:ArcMap里用这个免费工具,5步完成建筑群通风廊道分析

本文介绍了城市规划中利用ArcMap进行建筑群通风廊道分析的高效方法,重点讲解了迎风面投影指数(FAI)的应用。通过5个步骤,从数据准备到规划应用,帮助规划师快速评估城市通风潜力,优化建筑布局,提升城市风环境质量。

weixin_26800111的博客 412

编程之美--寻找发帖“水王”--代码实现

感觉编程之美中寻找发帖“水王”一节比较有意思,遂编码实现了,代码如下:int find(double ID[],int n) { int candidate; int nTimes,i; for(i=nTimes=0;i<n;i++) { if(nTimes==0){ candidate=ID[i],nTimes=1; }else{ if(candidate==ID[i

taihejin的专栏 525

船舶轨迹预测中的5个常见坑:基于LSTM单步预测的避坑实践

本文针对船舶轨迹预测中LSTM单步预测的常见问题,系统总结了五个典型陷阱及避坑实践。重点分析了如何正确处理AIS数据的非均匀采样与清洗、对航向角进行周期性编码、采用轨迹级归一化策略、缓解单步滚动预测的误差累积,并设计贴合业务的评估指标。这些实践能有效提升预测模型的准确性与实用性。

cnn8visionary的博客 633

寻找发帖水王java_编程之美之寻找发帖水王

简单来说就是求一个数组中出现次数超过一半的次数的数(保证存在),最容易想到的就是先排序,再返回中间位置的值。优化方式就是每次删去两个不相等的数,最后找不到不相等的数,那么最后剩下的数就是这个出现次数超过一半的数。考虑到每次寻找两个不相等的数比较困难,我们可以借助种思想换种写法。用candidate代表当前候选的数,time次数,从头往后遍历,如果出现一次就time+1,不相等就time-1如果ti...

weixin_42501848的博客 218

深入解析FPGA中的GTX高速收发器架构与设计原理

本文深入解析了FPGA中GTX高速收发器的核心架构与设计原理。文章将GTX比作数据“高速公路”,详细拆解了其PMA(物理媒介适配层)与PCS(物理编码子层)的双层结构,阐述了串并转换、时钟恢复等关键技术,并提供了时钟源选型(QPLL/CPLL)、上电复位流程及信号完整性调试等实战指南,是掌握高速接口设计的必备知识。

f6g7h8i9j的博客 220

ROS2学习笔记(二)-- 多机通讯原理简介及配置方法

简单介绍ROS2多机通信原理以及配置注意事项

aibingjin的博客 1万+

《编程之美》——寻找发帖“水王”

问题: 论坛中“水王”发帖的数目超过了帖子总数的一半,如果有当前论坛所有帖子的列表,求“水王”的ID。分析与解法: 一般的想法是根据ID对列表排序,若编号从0开始第N/2个ID即为“水王”的ID。这种方法的时间复杂度即为排序的时间复杂度,选用较好的排序算法平均时间复杂度为O(nlogn)。 避免排序,时间复杂为O(N)的解法是,每次从列表中删除两个不同的ID(不管是否包括“水王”的ID),这并

zengzhen_优快云的博客 1295

风控IV、AUC、KS python计算代码

df_temp:数据集,Y:是否逾期标签,feas_list:需要计算IV的 变量。2、 按月和不同Y 下的 IV计算。

暮雨听轩的专栏 1618

[编程之美] PSet2.3 寻找发帖“水王”

问题描述: Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 解题思路: 思路一:     书中

飞扬的青春的专栏 1126

电力现货市场出清机制解析:从理论到实践(附节点电价计算实例)

本文深入解析电力现货市场的核心出清机制,重点阐述了节点边际电价的计算原理与实践方法。通过对比系统边际电价、节点边际电价和分区边际电价三种模式,揭示了市场出清价格如何反映电力供需与网络阻塞。文章结合IEEE 30节点系统,提供了基于MATLAB和最优潮流模型的计算实例,详细展示了从构建模型到求解对偶变量以获取节点电价的全过程,为理解电力市场定价机制提供了从理论到实践的完整路径。

whisky的博客 757

温度实时检测预警系统(STC89C51RC+DS18B20)

温度实时检测预警系统

1 兴趣 2 实践 1499

编程之美:寻找发帖“水王”

《编程之美》2.3: Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜 欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当 前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 当面试...

diaoweikuo1943的博客 207

软件设计师高频考点—套路题

学习交流的总结

秩沅 2539

编程之美-2.3-寻找发帖“水王”

1. 简述     原题:简略的说,就是一个ID列表,其中每个ID都可能重复出现,其中一个ID的重复出现个数超过了列表长度的一半。要求快速找到这个ID。     扩展:ID列表中,有三个ID,这三个ID重复出现的次数,都超过了列表长度的1/4。要求快速找到这个ID。 2. 思路     原题的思路还是编程之美上面的方法,扩展题目的方法是参考中的一篇文章中讲过。

wuhuaiyu的专栏 8610

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

寻找发帖水王java_编程之美之寻找发帖“水王” 的算法问题

分析与解法首先想到的是一个最直接的方法,我们可以对所有ID进行排序。然后再扫描一遍排好序的ID列表,统计各个ID出现的次数。如果某个ID出现的次数超过总数的一半,那么就输出这个ID。这个算法的时间复杂度为O(N* log2N+N)。如果ID列表已经是有序的,还需要扫描一遍整个列表来统计各个ID出现的次数吗?如果一个ID出现的次数超过总数N的一半。那么,无论水王的ID是什么,这个有序的ID列表中...

weixin_28745067的博客 188

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

编程之美2.3 寻找发帖"水王"

题目: 传说,Tango有一大“水王”,他不但喜欢发帖,还会回复其他ID发的帖子,发帖数目超过帖子总数的一半,如果你有一个当前论坛上所有帖子的列表,其中帖子作者的ID也在表中,你能快速找到这个传说中的Tango水王吗?

richard_如风的专栏 1693

编程之美 2.3 寻找发帖“水王”

编程之美 2.3 寻找发帖“水王” int findM(vector arr)//水王 { int result; int times=0; vector::size_type i=0; for(i=0; i<arr.size(); i++) { if(times==0) { result=arr[i]; times++; }else{ if(arr[

Notes 3312

编程之美---寻找发帖“水王”

问题描述:Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 转化:数组中有一个数字出现的次数超过了数组长

爱橙子的OK绷的专栏 983

编程之美2.3 寻找发帖“水王”

题目:Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗?  本题最原始的解法是将ID进行排序,再

越经历越成长 764

寻找发帖“水王”--《编程之美》笔记

Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发贴,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 分析与解法 首先想到的是一个最直接的方法,我们可以

计算机的艺术 4497

编程之美之寻找发帖“水王” 的算法问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34168700的博客 124

编程之美--寻找发帖“水王”的扩张问题--代码实现

编程之美中寻找发帖“水王”一节的扩展问题:随着Tango的发展,管理员发现“超级水王”没有了。统计结果表明,有3个发帖很多的ID,他们的发帖数目都超过了帖子总数目N的1/4。如何从发帖ID列表中快速找到他们的ID?具体的代码实现如下(思想和原问题相同): int *findID(int *ID,int n) { int candidate[3]; int nTimes[3]={0};

taihejin的专栏 875

《编程之美》 2.3 寻找发帖的“水王”

问题描述: Tango 是微软亚洲研究院的一个实验项目,研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗? 分析: 如果对ID列表排序然后再寻

有规律的世界 6748
上一篇: 微软不黑屏而让盗版无法使用会怎样?[讨论中]
下一篇: 朋友在中关村E世界买本被骗经历
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值