Find number which appears more than half times
of array length.
分类:
移动开发 时间:
2014-05-27 00:16:48
阅读次数:
339
出题:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字;分析:解法1:首先对数组进行排序,时间复杂度为O(NlogN),由于有一个数字出现次数超过了数组的一半,所以如果二分数组的话,划分元素肯定就是这个数字;解法2:首先创建1/2数组大小的Hash
Table(哈希表可以替代排序时间,...
分类:
其他好文 时间:
2014-05-26 23:23:48
阅读次数:
453
题目:输入一个整型数组,数组里除了两个数出现一次之外,其它所有数字出现的次数都是2次,求这两个数字。要求时间复杂度为O(n),空间复杂度为O(1)
1 题目要求时间复杂度为O(n)并且空间复杂度为O(1)。这个时候朴素的方法利用数字来记录出现次数的方案都是不行的。
2 根据题目的特点,只有两个数出现一次,其它的所有数据都是出现2次。如果这两个数是a和b,那么对这个数组异或的结果就是a^...
分类:
其他好文 时间:
2014-05-24 14:17:24
阅读次数:
258
题目链接:Codeforces Round #246 (Div. 2)
A:直接找满足的人数,然后整除3就是答案
B:开一个vis数组记录每个衣服的主场和客场出现次数,然后输出的时候主场数量加上重复的,客场数量减掉重复的
C:原来是YY乱搞的,原来是哥德巴赫猜想,一个合数可以表示为3个质数相加,然后就先打个素数表,然后从最小的数字一个个模拟往前放即可,放的时候走的步数直接拆成都是质数即可
...
分类:
其他好文 时间:
2014-05-18 18:39:37
阅读次数:
298
这道题跟有?和*的那道题很像,不过要简单一些。为什么会简单呢,因为*号只能匹配跟它前面相同的字符。需要注意一点,从aab可以用c*a*b来匹配可以看出,*号可以使他之前的那个字符出现次数变成0。
昨天实验室的同学正好在做这个题,说想用递归做,我想都没想就说用递归肯定超时了。她为什么,我跟人家说因为递归的分支太多了,可怎么也想不起当初自己是怎么写的,回来一看,居然用递归做的,打脸啊。。这个题为什么...
分类:
其他好文 时间:
2014-05-15 13:29:34
阅读次数:
229
题意:从一个已排序的数组中移除掉重复的元素,每个元素最多可重复两次
思路: 思路和Remove Duplicates from Sorted Array一样,不过要设置一个计数变量,表示当前值出现的次数
出现次数少于2可以加入到新数组,多于2则不可以。每次遇到一个新变量要把计数变量重新设置为1,加入新数组要加1
复杂度:时间O(n), 空间O(1)...
分类:
其他好文 时间:
2014-05-14 21:03:00
阅读次数:
262
问题:求字符串中重复出现且长度最长子字符串,要求输出:符合条件子字符串、其重复出现次数、其首字母位置。分析:后缀数组方法求解。python版实现。...
分类:
编程语言 时间:
2014-05-13 11:19:23
阅读次数:
234
一。start 和end
方法下面是一个对单词"cat"出现在输入字符串中出现次数进行计数的例子:public class RegexMatches{ private static
final String REGEX = "\\bcat\\b"; //边界 private stat...
分类:
编程语言 时间:
2014-05-13 11:02:58
阅读次数:
312
#!/bin/bash
if [ $# -ne 2 -a $# -ne 1 ] ;then
echo "usage: `basename $0 ` [n] input file "
echo
exit
fi
if [ $# -eq 1 ];then
I_TOP=10
I_FILE=$1
fi...
分类:
系统相关 时间:
2014-05-13 06:21:24
阅读次数:
454
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入数组:{1,3,3,2,3,2,3,3,2}。由于2在数组中出现了5次,超过数组长度的一半,因此要输出2。有两种解法:第一种方法是基于快速排序算法的原理,边排序边判断是否符合输出条件。这种方法的代码我因为没有保存,在电脑蓝屏之后全...
分类:
其他好文 时间:
2014-05-10 22:45:25
阅读次数:
291