上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 43 下一页
摘要: http://community.topcoder.com/stat?c=problem_statement&pm=7753&rd=10672http://community.topcoder.com/tc?module=Static&d1=match_editorials&d2=srm348这道题看着就是DP,但怎么DP呢?一开始按照测试例子{1,3,2,6,4,5}和答案{1,2,4,5}, {1,3,4,5}, {1,2,6} and {1,3,6}产生了错觉,以为必须要以该点结尾的最长子序列。写完之后比照正确答案调试许久,发现不对。{4,2,1,3,5} 阅读全文
posted @ 2013-09-26 00:35 阿牧遥 阅读(246) 评论(0) 推荐(0)
摘要: 有意思的题目,同样的代码,小数据,Java是600+ms,而C++就6ms。所以大数据Java超时。估计递归一多,Java的效率明显下降。1. 思路是从外圈往里做标记,标记活下来的cell;2. 因为螺旋打印很熟了,所以就螺旋的从外面往里面标记;3. 但是发现了一个问题,错误的标记了第三行第四个为'... 阅读全文
posted @ 2013-09-25 21:53 阿牧遥 阅读(386) 评论(0) 推荐(0)
摘要: http://community.topcoder.com/stat?c=problem_statement&pm=11609&rd=14547http://apps.topcoder.com/wiki/display/tc/SRM+522这道题学到的:1.如果要搜索或遍历,至少要知道边界,这里用了1*1==1找到了边界;然后的优化是遍历A的可能性时,B只要在c/A左右找就行了。如果整除了,当然是这种情况的最小,-1和1用来mitigate不整除的情况。如果B再偏多一些,比如1,那么C就会偏出A,abs肯定会更大。import java.math.*;public class 阅读全文
posted @ 2013-09-25 11:43 阿牧遥 阅读(239) 评论(0) 推荐(0)
摘要: 现在觉得有空时可以刷一下topcoder的DIV 2的Lvl 3的题目。感觉和刷LeetCode和WikiOi都是不一样的。http://community.topcoder.com/stat?c=problem_statement&pm=11552&rd=14544http://apps.topcoder.com/wiki/display/tc/SRM+519这道题目是找规律,从6变到8的过程中有最大的15;而由35到38的过程中最大是39,主要是去掉32后,3->6的过程中有个4,所以变成32+7。所以算法就是找到最高的那个不同的位,然后把后面的都变成1就行了。但实现 阅读全文
posted @ 2013-09-25 00:15 阿牧遥 阅读(240) 评论(0) 推荐(0)
摘要: 似曾相识。。。public class Solution { public int[][] generateMatrix(int n) { int cnt = 1; int top = 0; int bottom = n-1; int left = 0; int right = n-1; int[][] r = new int[n][n]; while (cnt = left; i--) r[bottom][i] = cnt++; bott... 阅读全文
posted @ 2013-09-24 21:37 阿牧遥 阅读(167) 评论(0) 推荐(0)
摘要: http://wikioi.com/problem/1044/这道题是DP。前一问很自然可以规约成最长不升(含等号下降)子序列。难点在后一问为何能规约成最长上升子序列。后来看了网上的回答,仍然没有简单的理解方法,似乎需要证明。证明可以这么来看,一是如果有长度为n的上升子序列,那么至少要n个序列;二,可以找一个方法构造出这n个队列。(方法暂不表)但如果用贪心,就好理解多了。比如:389 207 155 300 299 170 158 65 贪心就是从头往后,只要能放入第一个队列就第一个,那么389,207,155,然后跳过一些放入65然后第二个队列开始300。最终是300,299,170,158 阅读全文
posted @ 2013-09-24 20:30 阿牧遥 阅读(222) 评论(0) 推荐(0)
摘要: 难题。一开始使用递归+备忘录的方式,我的递归写的太烂,大数据集合超时。要注意的是,一开始没考虑到"", "*"的case。超时的代码(即使后来加上长度的预先判断):class Solution {public: int matrix[1000][1000]; bool isMatch(c... 阅读全文
posted @ 2013-09-23 22:13 阿牧遥 阅读(2109) 评论(0) 推荐(1)
摘要: 使用了HashMap和排序,此题就没啥了。在长度一定范围的情况下,用26*的方式做key会更好。注意两点:1. java的遍历是for和: 2. map.keySet()public class Solution { public ArrayList anagrams(String[] str... 阅读全文
posted @ 2013-09-22 20:05 阿牧遥 阅读(241) 评论(0) 推荐(1)
摘要: 这种题目有了正确的方法就能简单很多。这道题目是先做对角线的交换,然后上下交换。要注意的是,如果对角线交换,等号两边的i和j肯定是交换的(m[i][j]和m[j][i])public class Solution { public void rotate(int[][] matrix) { int len = matrix.length; for (int i = 0; i < len; i++) { for (int j = 0; j < len-i; j++) { int... 阅读全文
posted @ 2013-09-22 19:09 阿牧遥 阅读(227) 评论(0) 推荐(1)
摘要: 一致性哈希环形Hash解决节点的增删问题,虚拟节点解决平衡性问题。http://blog.csdn.net/kongqz/article/details/6695417http://www.jiacheo.org/blog/174http://blog.csdn.net/sparkliang/article/details/5279393(虚拟节点)C10K问题编写连接数巨大的高负载服务器程序时,经典的多线程模式和select模式都不再适用。 应当抛弃它们,采用epoll/kqueue/dev_poll来捕获I/O事件。最后简要介绍了AIO。 epoll:(1) LT水平触发 (2) ET边缘 阅读全文
posted @ 2013-09-21 23:27 阿牧遥 阅读(611) 评论(0) 推荐(0)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 43 下一页