题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。思路:解法一:基于partition函数的O(n)算法。 先用partition函数对数组进行交换修.....
分类:
编程语言 时间:
2015-11-11 11:19:22
阅读次数:
239
题目大意:有n个问题,m个人来投票,没人最多投4票,问该怎样决定才能使每个人都有超过一半的票数被认可?题目分析:2-SAT问题。如果某个人投的票数少于2,则这两票军被采纳,如果票数至少三票,则最多有一票可以不被采纳,这意味着这个人的投的任意两票之间有矛盾,是“二者取一”的关系。代码如下:# incl...
分类:
其他好文 时间:
2015-11-08 17:53:44
阅读次数:
480
洛谷P1407 工资本题地址:http://www.luogu.org/problem/show?pid=1407题目描述有一家世界级大企业,他们经过调查,发现了一个奇特的现象,竟然在自己的公司里,有超过一半的雇员,他们的工资完全相同!公布了这项调查结果后,众多老板对于这一现象很感兴趣,他们发现在自...
分类:
其他好文 时间:
2015-10-16 09:54:59
阅读次数:
197
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。算法描述打擂算法:多的留下,少的走
先找出数最多的,然后找有多少个数,最后判断数目是否超过了一半,
θ(n)时间复杂度代码实现class Solution {
public:
int Mor...
分类:
编程语言 时间:
2015-09-21 01:37:53
阅读次数:
286
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。分析:找数组中出现次数超过一半的数字,我们一半可以采用两种方法,一是使用快排,对数组进行排序,然后直接...
分类:
编程语言 时间:
2015-09-12 17:28:52
阅读次数:
148
题目来源《剑指offer》面试题29、《编程之美》2.3 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. 解法1:数组中有一个数字出现的次数超过了...
分类:
编程语言 时间:
2015-09-03 19:05:47
阅读次数:
163
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。记得最后要判断一下count是否大于n/2.若求n/3的数,则可用num1,num2来判断,当number[i...
分类:
编程语言 时间:
2015-08-31 21:06:19
阅读次数:
198
题目:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5此,超过数组长度的一半,因此输出2
分析:
因为是这个数出现的次数比其他数出现次数的总和还多,所以可以考虑用栈做,用来两两抵消.
如果碰到一样的,则加上,如果碰到与栈的末尾不一样,则弹出一个(抵消).
这样到了最后,剩下...
分类:
编程语言 时间:
2015-08-30 17:34:15
阅读次数:
109
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出整个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在整个数组中出现5次,超过数组长度的一半,输出2.此题的解法有很多种,剑指offer书中提出了两种,一种是Parition的方法,另外一种是计数的方法。这里...
分类:
编程语言 时间:
2015-08-30 17:07:36
阅读次数:
172
题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。输入: 每个测试案例包括2行: 第一行输入一个整数n(1#include#include...
分类:
编程语言 时间:
2015-08-27 16:40:58
阅读次数:
150