编程之美-“水王”水贴计算

题目要求:

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

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

想法:

我们在这张ID列表中要注意到水王的ID是出现了帖子数目的一半这也就成为了题目的突破口,就如同参加选举投票时,你可以选三个人,而且参加选举的也仅是这三个人,如果你每个人都投了一票,这就意味着你放弃了选择;同理水王拥有最高的“票数”,当他减去别人的“票数”时,他依旧为正数,那他就获胜了。

源代码:

#include<iostream.h>
int find(int *ID, int N)
{
    int nTimes = 0;
    int i;
    int people;
    for (i = 0; i < N; i++)
    {
        if (nTimes == 0)
        {
            people = ID[i];
            nTimes++;
        }
        else
        {
            if (people == ID[i])
                nTimes++;
            else
                nTimes--;
        }
    }  

    return people;
}
void main()
{
    int a[15]={5,6,8,2,4,9,7,5,7,6,5,2,5,1,5};
	int record=find(a,15);
	cout<<"水王ID"<<"\t"<<record<<endl;
}

  结果截图:

时间: 2024-08-21 21:28:27

编程之美-“水王”水贴计算的相关文章

读书问题之《编程之美》 -----12061161 赵梓皓

我阅读的书是<编程之美> 刚开始的时候阅读序,就觉得控制cpu利用率这个问题很好玩,所以重点看了这部分和解决办法,问题也都大部分是这部分的.那么问题就来了(挖掘机技术xxx?中国山东找蓝翔) 咳咳,问题在下面: 1.关于问题的提出.(也是一点点建议) 本书的主要内容是告诉读者如何思考问题和解决问题.但是提出问题也是很重要的,正如爱因斯坦所说“提出一个问题往往比解决一个问题更重要”,很多面试题(比如井盖为啥是圆的)我觉得正常人很少会想到.所以,这个问题是怎么想出来的...我很好奇.也希望作者能够

编程之美之2.14 求数组的子数组之和的最大值

[题目] 一个有N个整数元素的一维数组(A[0],A[1],A[2],...A[n-1]),这个数组中当然有很多子数组,那么子数组之和的最大值是多少? 该子数组是连续的. 我们先来明确一下题意: (1)子数组意味着是连续的. (2)题目只需要求和,并不需要返回子数组的具体位置. (3)数组的元素是整数,所以数组可能包含正整数,负整数或者零. 举几个例子: 数组:[1,-2,3,5,-3,2]返回8 数组:[0,-2,3,5,-1,2]返回9 数组:[-9,-2,-3,-5,-3]返回8 [解法一

编程之美——子数组和最大值

解法一:直接求解下标i~j的子数组和最大值:复杂度O(N^2): 代码如下: 1 #include<iostream> 2 using namespace std; 3 const int INF=1000000; 4 5 int maxSum(int arr[],int n); 6 7 int main() 8 { 9 int arr[7]={-2,5,3,-6,4,-8,6}; 10 cout<<maxSum(arr,7)<<endl; 11 return 0; 1

《编程之美》

自己也是才听老师的介绍,才从网上下载下<编程之美>这本书来阅读. 浏览其目录,发现这样的一本书正时我这个阶段所最需要的,现在大二,已经有了一定的基础,所以再看以前那些基础教程总觉得,太简单了.但是看太难的东西,又有好些知识没有学过,不理解.所以想<编程之美>这样一本,用到的知识比较基础,但是解题思路很新颖,可以开拓我们的视野,同时书中列出了源代码,只要自己愿意学习,可以迅速仿照例子做出程序,对于树立编程人员的自信心有很大帮助,同时短小的程序,可以迅速做出来,可以当做空闲时间的一种休

编程之美 2.9 斐波那契(Fibonacci)数列

编程之美 2.9 斐波那契(Fibonacci)数列 斐波那契的递归表达式如下 F(n)=F(n-1)+F(n-2) n>=2 F(1)=1 F(0)=0 书中提到了三中解决方法 第一种:直接运用递归的方法来进行求解 package org.wrh.programbeautiful; import java.util.Scanner; public class Topic2_9 { public static void main(String[] args) { Topic2_9 t=new T

[搜索]字符串的相似度问题-从编程之美说起

在<编程之美>之3.3讲到了计算字符串的相似度,请看下图 原文作者做了很详细的解释,有兴趣的朋友可以参考原文. 其实,总结为一点,是求两个字符的编辑距离,关于编辑距离,可以参考这儿 http://zh.wikipedia.org/wiki/%E7%B7%A8%E8%BC%AF%E8%B7%9D%E9%9B%A2 求两个字符串的编辑距离是有公式的,公式如下: 所以,根据这个公式,我们实现代码为:(C++) int minimum(int a,int b,int c) { return min(a

编程之美之求二叉树中节点的最大距离

题目:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数.写一个程序求一棵二叉树中相距最远的两个节点之间的距离. 分析:树上分析的很清楚,计算一个二叉树的最大距离有两个情况: 1. 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点. 2. 路径不穿过根节点,而是左子树或右子树的最大距离路径,取其大者. 但是树上的代码使用了额外的节点字段,这里给出我的代码,思路是一样的: struct BinaryTree { int valu

2014-04-19编程之美初赛题目及答案解析

第一题: 描写叙述 一般来说,我们採用针孔相机模型,也就是觉得它用到的是小孔成像原理. 在相机坐标系下,一般来说,我们用到的单位长度,不是"米"这种国际单位,而是相邻像素的长度.而焦距在相机坐标系中的大小,是在图像处理领域的一个很重要的物理量. 如果我们已经依据相机參数,得到镜头的物理焦距大小(focal length),和相机胶片的宽度(CCD width),以及照片的横向分辨率(image width),则详细计算公式为: Focal length in pixels = (ima

编程之美读书笔记1.8 - 小飞的电梯调度算法

http://blog.csdn.net/pipisorry/article/details/36688019 问题: 亚洲微软研究院所在的希格玛大厦一共有6部电梯.在高峰时间,每层都有人上下,电梯每层都停.实习生小飞常常会被每层都停的电梯弄的很不耐烦,于是他提出了这样一个办法: 由于楼层并不算太高,那么在繁忙的上下班时间,每次电梯从一层往上走时,我们只允许电梯停在其中的某一层.所有乘客从一楼上电梯,到达某层后,电梯停下来,所有乘客再从这里爬楼梯到自己的目的层.在一楼的时候,每个乘客选择自己的目