
1 likaci 2014-10-08 14:12:42 +08:00 然后发现数学才是真爱,转行做数学去了…… |
3 chengdujin 2014-10-08 14:49:36 +08:00 同刷中,国庆刚过完一遍 也是用 Python :D 还剩三道题感觉太麻烦,没做 20.0% Regular Expression Matching 14.0% Text Justification 14.0% Wildcard Matching 准备本周开始下一遍 |
4 cloudzhou OP @chengdujin Text Justification 难度很小,就是细节题目而已。 Wildcard Matching 这道题目我也是放弃了,虽然使用递归实现了,但是 timeout 了。 有一道题目我需要咨询一下: Longest Palindromic Substring 这道题目使用 动态规划 是很明显的,复杂度 O(n^2),但是哪怕我照抄前人 cpp 的代码也不能通过。 我知道有一种 O(n) 的解法,http://leetcode.com/2011/11/longest-palindromic-substring-part-ii.html 不知道是不是 leetcode 对这道题目的评判标准提高了? |
5 chengdujin 2014-10-08 15:27:05 +08:00 @cloudzhou 哈 longest palindromic substring 我也是n^2的,没过折腾了两天,最后还是选择用自己的办法(所以最后还是问号不是勾) 这道题我看讨论,n^2是过不了的,要用一个叫Manacher Algorithm的O(n)算法 |
6 cloudzhou OP @chengdujin 恩,看来是必须 O(n) 才能过,这个算法我就没有深究了。 leetcode 有一些题目,包括一些面试题,有点“讨巧”的意味,我不认为这是好的面试题。 对于个人,我更喜欢一些贴近现实的题目,比如 LRU 的实现,再引入并发,探讨空间很大,这是面试的好题目。 |
7 yangff 2014-10-08 15:57:00 +08:00 via Android @cloudzhou mc是一个挺有用的算法。 特别是它蕴含了一个字符串的本质不同的回文串是O(n)级别的 |
9 lxgone 2014-10-08 16:04:32 +08:00 哎,最近找工作也刷leetcode,也是按照AC Rate从高到底来的,可惜还是木有刷完 |
10 lushl9301 2014-10-08 16:45:33 +08:00 回归理论真的必要么。 我在几年前做竞赛,理论基础比较差,但是大量时间练习。大脑零落,编程快速准确。 如今大学学习紧张,很少时间练习。虽然理论知识强了,但是编程水平下降到无法看。自己也一直觉得脑残。。非常不爽快。。。 估计是可能需要通过刷题库来解决了。。 |
11 cloudzhou OP @lushl9301 所以这就是竞技和实际开发的不同啊。 如果只是竞技,那就是不断的刷题,并且练习快速编程。 如果为了加强计算机基础,提高实际掌握问题的能力,那就回归到理论。 对我来说,竞技根本就没有必要,并且不是为了刷提为目的的,所以认真看书,加强理论知识才是我要做的。 |
12 liuchang0812 2014-10-08 22:41:11 +08:00 via Android @cloudzhou 可以过啊。。。。 |
13 liuchang0812 2014-10-08 22:41:49 +08:00 via Android |
14 dingyaguang117 2014-10-08 23:09:51 +08:00 via iPhone 正则那题要是在大三学编译原理的时候肯定能做出来,nfa转dfa,不过现在完全不记得 |
15 cloudzhou OP @liuchang0812 @chengdujin 真是很神奇,@liuchang0812 的算法真的能过,我是参照 https://github.com/soulmachine/leetcode 里面的解法的,完全照抄也没有通过,这两者之间有什么不一样呢? |
16 cloudzhou OP |
17 cloudzhou OP @liuchang0812 @chengdujin 哈哈,我已经找到问题的关键了,这两者复杂度是一样的,soulmachine/leetcode 的方法更加好理解,如果注销了 fill_n(&f[0][0], n * n, false); 这一句就完全可以通过了。 如果 @liuchang0812 加了 fill_n(&f[0][0], 1001 * 1001, 0); 这一句同样也是 Time Limit Exceeded 的,这真是个有趣的问题。 从工程化来说:申请并且对内存段进行 zero 是一个很好的习惯。 |
18 chenggiant 2014-10-09 00:53:25 +08:00 via iPhone 膜拜一下!我刷了4个月了,还是只做了60题... |
19 liuchang0812 2014-10-09 00:58:38 +08:00 @cloudzhou 这个数组,代码本来紧跟着就是初始化的过程.工程上来说也不应该多次对大内存操作,而且还是无用的操作. |
20 thinkmore 2014-10-09 09:01:58 +08:00 数学很重要,可是天赋。。。 |
21 cloudzhou OP @liuchang0812 我对 c/c++ 不了解,之前看书的时候是推荐申请内存之后 memset zero,是一种编程上的防御手段吧。所以我也不了解现在默认情况下申请内存后就是 zero 的。 谁对这一块了解的麻烦讲讲? |
22 wudikua 2014-10-09 11:28:23 +08:00 java实现的飘过~ |
23 tension2012 2014-10-09 14:47:41 +08:00 test data貌似也不能看啊 |
24 lushl9301 2014-10-09 21:20:04 +08:00 @cloudzhou 我觉得如果这样想,看efficient cpp呀,code complete啊,programming pearls。再加上TAOCP,慢慢啃。哈哈。 我是大一去啃APUE,看了有1/8. 看TAOCP一卷多,然后转到programming pearls。加油加油。。。希望找到一起学习计算机经典的人。。 |
25 cloudzhou OP @lushl9301 你们现在这种意识真好,以前迷迷糊糊不知道怎么学起,计算机就应该从基本理论,算法和数据结构开始学起 |
26 John1984 2015-04-14 20:52:14 +08:00 @chengdujin O(n^2)可以过,python代码。http://blog.csdn.net/cjhou/article/details/45044813 |
27 armstrong 2017-03-12 14:15:37 +08:00 真是羡慕你们呀,我是从今年才开始意识到这个问题,正在努力弥补中 |