寻找最水之王

设计思路:水王发的帖子超过总帖子的一半是最关键的信息。而要求算法是O(n),所以不能用排序,那么我们只能遍历一次。把第一个id设为是水王,然后遍历所有的id,如果第i个id和上一个一样,就设一个参数加一,如果不一样,就减一,类似于消掉,将水王的id和其他的id消掉,那么遍历一遍剩下的,就肯定是水王的id。因为他超过总id的一半。

程序代码:

public static void main(String[] args) {
		// TODO 自动生成的方法存根

		 String a[]=new String[]{"a","r","b","b","c","a","d","r","r","a","r","a","r","r"};

	        String b=a[0];

	        int i=0,n=0;

	        for(i=0;i<13;i++)

	        {

	            if(a[i]==b)

	            {

	                n=n+1;

	            }

	            else

	            {

	                n=n-1;

	                if(n<0)

	                {

	                    b=a[i];

	                    n=1;

	                }

	            }

	        }

	        System.out.print("水王为"+b);

	    }

	}

  实验截图:

实验反思。一开始并没有想到这个算法,经过高长直同学的讲解才明白。当时听到老师说类似于消消乐的算法,就有点明白,但是没有把水王的帖子超过一半这个条件给加进去。反而一直在消除上下功夫。还是对程序的认识不够深,在编程中,一定不要忽略题目给的条件,因为那可能是解决这个问题的钥匙 ,要充分考虑这个条件的意思。为什么给这个条件,他有什么用处。这样,编程才会事半功倍。

时间: 2024-08-05 14:56:36

寻找最水之王的相关文章

[转] 前端学习必备基础(1)

我们生活在五彩缤纷的世界里,天空.草地.海洋.漫无边际的薰衣草都有它们各自的色彩.你.我.他也有自己的色彩,代表个人特色的衣着.家装.装饰物的色彩,可以充分反映人的性格.爱好.品位. 设计爱好者对色彩的喜爱更是“如痴如狂”,他们知道色彩不仅仅是点缀生活的重要角色,它也是一门学问.要在设计作品中灵活.巧妙的运用色彩,使作品达到各种精彩效果,就必须对色彩好好研究一番.今天我们首先学习一些关于色彩的最简单.基础也是很重要知识,感受一下色彩运用的妙处! 认识什么是色彩 一.色彩的构成 色彩一般分为无彩色

Fill-倒水问题(Uva-10603-隐式图路径寻找问题)

原题:https://uva.onlinejudge.org/external/106/10603.pdf 有三个没有刻度的杯子,它们的容量分别是a, b, c, 最初只有c中的杯子装满水,其他的被子都是空的.问如果通过倒水得到d升水, 若可以得到,还要求最少的倒水总量(每倒一次水,都加入到总量里).若不能得到d升水,求比d小的距离d最近的d'升水, 及最少倒水总量. 分析: 因为是求最少倒水总量,本能地想到用bfs搜索.最开始读错题了...看成求倒水的最少次数,这个很简单.....我们可以把求

寻找水龙王

设计思想:       由”该“水王”发帖数目超过了帖子数目的一半”可以知道当用相邻两个ID不同时则消去的方法实现时,水龙王ID一定不会被全部消掉,也就是水龙王总数不会减为0:用数组longID[]记录所有ID,将第一个假设为龙王,与第二个ID比较,若相同,龙王ID总数加一,否则减一:直到减为0,则更换龙王ID,一直循环,直到结束. 代码实现:     import java.util.Scanner; public class Longwang { public static void mai

寻找水龙王2

设计思想:  既然三个水龙王每个的发帖数大于四分之一,那就四个帖子一组,假设前三个ID为水龙王,两个数组,一个记录三个水龙王ID,一个记录三个水龙王各自ID数目,将每个ID与假设龙王的ID相比较,如相同,则在相同的龙王ID总数加一,若与三个假设龙王都不相同,则假设的三个龙王各自总数减一,直到减为0,更换龙王ID. 代码实现: import java.util.Scanner; public class Longwang2 { public static void main(String []ar

4.7-4.9补题+水题+高维前缀和

题目链接:51nod 1718 Cos的多项式  [数学] 题解: 2cosx=2cosx 2cos2x=(2cosx)^2-2 2cos3x=(2cosx)^3-3*(2cosx) 数归证明2cos(nx)能表示成关于2cosx的多项式,设为f(n) f(1)=x,f(2)=x^2-2(其中的x就是2cosx) 假设n=1~k时均成立(k>=3) 当n=k+1时 由cos((k+1)x)=cos(kx)cos(x)-sin(kx)sin(x) cos((k-1)x)=cos(kx)cos(x)

向内的寻找

程序员是一群善于思考的人, 作为一个程序员可能或多或少都思考过人生, 就在2015年两位互联网界的大佬思考出了自己的人生, 一位是李开复, 另外一位是黎万强. 李开复在他的<向死而生·我修的死亡学分>中阐述说要选择自己热爱的事情.而黎万强在他的<花与树的星空>摄影展上也是向众人们表达了要选择自己发自内心热爱的事情. 寻找人生的意义一定是向内找,而不是向外找. 很多人习惯性的向外寻找, 思考出的人生的意义就是得到名利权,然而向外找是无休止的,看见很多人创业成功后又选择创业,赚了钱还要

codevs 2989 寻找somebody

2989 寻找somebody 题目描述 Description 在一个n*m的方阵中 寻找somebody的位置 有可能k不存在输出“biantai” 输入描述 Input Description 共n+1行 第一行 n m k 后n行为方阵 输出描述 Output Description 输出k的行和列 样例输入 Sample Input 2 4 9 1 1 4 5 5 9 4 0 样例输出 Sample Output 2 2 数据范围及提示 Data Size & Hint n<10

涨姿势题2_水题_两种解法

Problem Description 涨姿势题就是所谓的优化题,在组队赛中,队伍发现了一题水题,那么应该交给谁去处理?作为处理水题的代码手,应该具备什么样的素养?1,要快,水题拼的就是速度!2,不能卡水题!水题都卡,绝对不是一个代码手的风范!3,不能出错,错一次即罚时20分钟,对于水题来讲是致命的!4,要能看出来一题是水题!没有这条,上面三条都是没有意义的! 如果你希望你成团队中一个合格的代码手,那么这套题是你最好的选择,快AC吧! 本系列即是为了提高水题代码手的素养而准备的!水题经常需要用到

坚持努力,在黑暗中寻找光明——我的2014

此文不为参赛,算是对自己的一个总结.开始本来不想总结了,因为从小我就不会写作文,晚上上来逛逛,看到身边的朋友也写了,自己也总结一下吧,算是对自己一年来的收尾. 在黑暗中寻找光明,这个题目是我对于今年的第一感触.为什么说是黑暗呢,倒不是说自己所处的环境多么恶劣什么的,而是能够更加深刻地重新认识自己一次,认识自己之后就会猛然有这样一种想法:你之前都在做什么? 科班毕业的我也也已经离开校园5个年头之久了,虽然重点院校毕业,但并没有好好把握大学的时光用来学习,真正入门还是要从大四的外企实习开始,真是人不