有时候得到了一个List,我想把它随机排列一下顺序。而且如果针对不同类型的List都能用,就要用到泛型。其实思想很简单,就是从原List中每次随机取一项,添加到新的List中,并在原List中删除。这样重复,直到原List为空为止。不过要注意,如果要保护原List不受变化,就必须先Copy一份Lis...
分类:
其他好文 时间:
2014-08-15 12:37:58
阅读次数:
236
labelEx($model,'project_id',array('class' => 'control-label')); ?> findAll(); $list = CHtml::lis...
分类:
其他好文 时间:
2014-08-15 12:18:08
阅读次数:
164
这个题目就是用两个指针遍历链表,一个指针每次跳一步,另外一个指针每次跳两步,如果重合,则说明有环。 1 #define NULL 0 2 3 class Solution { 4 public: 5 bool hasCycle(ListNode *head) { 6 Lis...
分类:
其他好文 时间:
2014-08-14 19:27:19
阅读次数:
185
题目:uva10635Prince and Princess(LIS)
题目大意:求最长相同公共子序列。
解题思路:因为数据很大,62500不能用之前的那种求LIS的做法来做。可以将第一个路线的整数重新排个序(0...p),然后之后的那个路线因为要找相同的最长子序列,所以要将它原来的数字映射成第一条路线新的数字。这样之后就只需要找第二个路线的LIS就可以了。
nlog(n)...
分类:
其他好文 时间:
2014-08-13 22:26:17
阅读次数:
229
题目:UVA - 10534Wavio Sequence(LIS)
题目大意:给出N个数字,找出这样的序列:2 * n + 1个数字组成。前面的n + 1个数字单调递增,后面n + 1单调递减。
解题思路:从前往后找一遍LIS,再从后往前找一遍LIS。最后只要i这个位置的LIS的长度和LDS的长度取最小值。再*2 - 1就是这个波浪数字的长度。注意这里的求LIS要用nlog...
分类:
其他好文 时间:
2014-08-13 22:25:17
阅读次数:
332
最长上升子序列就是求给定序列的最长的递增序列,其中不要求序列的元素在原序列中保持连续。
为了方便理解,可以举个例子:
inta[] = {0,2,1,5,3,6,4,8,9,7}(数组下标从1开始)的一个最长的子序列1,3,4,7,9。
利用动态规划的思想,可以方便的求取这个解。
为了方便解释,我们定义dp(n)为长度为1至下标为n的最长子序列的长度(数组下标假设从1开始),{a[1],a...
分类:
其他好文 时间:
2014-08-13 14:55:17
阅读次数:
195
无情的一题!!!
读了半小时题,才把题目看懂,发现是LIS后写了二分的那种方法,node[i]向ans[i]赋值的时候len++了两次,样例跑不出来,从机房走出去看见一只小猫,回来就发现了bug
=。=
结果一提交,RE,检查发现n最大10000我开的22222,没开小,百度里面看到有人也用这个方法提交后也是RE。。。自己出了几组数据后发现貌似不能用二分写呢(至少我还没想到该怎么改,看到后知...
分类:
其他好文 时间:
2014-08-11 18:07:02
阅读次数:
217
本题就是一题LIS(最长递增子序列)的问题。本题要求求最长递增子序列和最长递减子序列。
dp的解法是O(n*n),这个应该大家都知道,不过本题应该超时了。
因为有O(nlgn)的解法。
但是由于本题的数据特殊性,故此本题可以利用这个特殊性加速到O(n)的解法,其中的底层思想是counting sort分段的思想。就是如果你不会counting sort的话,就很难想出这种优化的算法了。
...
分类:
其他好文 时间:
2014-08-09 23:18:49
阅读次数:
393
题意:给定若干大象的体重及智商值,求满足大象体重严格递增,智商严格递减的序列的最大个数,
并打印任意一组取得最大值的序列的大象编号
分析:这个是LIS的应用,只不过判断条件有两个,可以先对大象的体重排序,但是要打印路径,
那就必须得回溯求路径,可以直接逆序循环求,当然递归也是一个好的选择...
分类:
其他好文 时间:
2014-08-09 11:47:47
阅读次数:
195