1、去掉重复的数组元素。2、获取一个数组中的重复项。3、求一个字符串的字节长度,一个英文字符占用一个字节,一个中文字符占用两个字节。4、判断一个字符串中出现次数最多的字符,统计这个次数。5、数组排序。6、快排。7、删除/添加数组项。8、数组随机顺序输出。9、数组求和、最大值。10、判断是否为数组。1...
分类:
Web程序 时间:
2014-06-29 13:41:49
阅读次数:
363
在某位不知名的大大推荐下做了这题,和我上一篇的线段树很像,于是怒拍,思想基本相同,记录区间最大值,当最大值小于取模时可以剪枝。
今后再遇到此类问题算是能解决了
// file name: d.cpp //
// author: huangjipeng //
// creat ...
分类:
其他好文 时间:
2014-06-08 15:36:11
阅读次数:
354
问题
给定N个元素的数组,求第k大的数。
特例
当k=0时,就是求最大值,当k=N-1时,就是求最小值。
应用
顺序统计
求top N排行榜
基本思想
使用快速排序方法中的分区思想,使得a[k]左侧没有更小的数,右侧没有更大的数
性能
快速选择算法的复杂度...
分类:
其他好文 时间:
2014-06-08 09:58:08
阅读次数:
211
要询问一个数列的某区间的最大值,其中会更新数据。
这样的题目使用树状数组是可以的,但是因为要牵涉到区间操作,故此还是线段树比较好点。
不过使用树状数组也是可以的,就是查询的时候麻烦点,注意计算,不要超出区间了。
看下面的query函数,这是主要的难点函数,其中的-1操作和这个判断r - lowbit(r) >= l,都很蛋疼,一不小心就会出错。
#include
#inc...
分类:
其他好文 时间:
2014-06-08 09:02:49
阅读次数:
345
红黑树的java实现,除了必备的左右旋、插入、删除,另外还增加了求前趋后继,中序遍历,最大值最小值等方法...
分类:
其他好文 时间:
2014-06-07 13:09:28
阅读次数:
215
裸的线段树求区间的最大值。 1 #include 2 #include 3 using
namespace std; 4 5 #define MAXN 262144 6 7 int _v[MAXN > 1;23 build(lso),
build(rso);24 ...
分类:
其他好文 时间:
2014-06-06 15:44:06
阅读次数:
222
计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,补码=反码+1。在二进制里,是
用0和1来表示正负的,最高位为符号位,最高位为1代表负数,最高位为0代表正数。 以java中8位的byte为例,最大值为:0111
1111(127),最小值为1000 0001(-128)。 ...
分类:
编程语言 时间:
2014-06-05 19:53:08
阅读次数:
371
计数排序是基于非比较的一种排序,效率高,但是需要额外的内存空间,适用于数量比比较小,而且对元素最大值也有限制。代码流程如下:假设原数组名称为a1.计算出数组当中最大的值,比如maxv2.申请一个用于计数的数组c,数组大小为maxv3.统计各个元素出现的个数c[a[i]]++4.使用c[i]=c[i-...
分类:
其他好文 时间:
2014-06-02 16:29:24
阅读次数:
249
maximum函数取一组可排序的 List(属于 Ord Typeclass)
做参数,并回传其中的最大值。想想,在命令式风格中这一函数该怎么实现。很可能你会设一个变量来存储当前的最大值,然后用循环遍历该
List,若存在比这个值更大的元素,则修改变量为这一元素的值。到最后,变量的值就是运算结果。唔...
分类:
其他好文 时间:
2014-06-02 00:11:06
阅读次数:
412
九度上把这道题目改成了一副扑克牌有4张大小王,这里姑且不管它最多几个0,就题目来说,不严谨,很含糊,比如这里没有对顺子给出比较严谨的定义,5个以下的连续数字算是顺子吗?现实中要至少5个才算顺子的,而且如果假设3个牌也算顺子,那如果输入的是3个0呢,这有点太牵强了!看论坛里面好多人吐槽。总之,不管那么多,这道题目无论它怎么坑爹,用剑指offer上的思路写的代码AC是没问题的,因为这里不管你0有多少个(只要不大于数组的长度就可)都OK。
我之前想避开排序,或者开辟哈希数组,就遍历一遍求出最大值,最小值,...
分类:
其他好文 时间:
2014-06-01 15:27:38
阅读次数:
261