一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2131|回复: 17
收起左侧

[算法题] 求教高效学习编程题的方法

[复制链接] |试试Instant~ |关注本帖
shuashua 发表于 2015-8-16 07:43:58 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
本帖最后由 shuashua 于 2015-8-16 08:19 编辑

大家好,新人小白来报道。
本小白即将cs master开学, 美国前50的cs项目,不算太差,但肯定也不及坛子里的牛牛们。
今年的目标是成功找到明年的暑期实习,背景和进度如下:
毫无编程竞赛经验,工程上的代码有一些经验;
基本的数据结构算法知道,比较直白的复杂度会分析,要说严肃的数学证明可能并不是非常擅长;
coursera算法课跟过,大作业有三次没有写,课程掌握程度保守来说60%;
leetcode ac了110道题目,稍微数了一下,hard接近30道,medium 60道,还有很多题目思考过没有想出或者是写了超时的;
算导 epi 看过一部分,很多时候当作手册看,还需要认真啃,尤其是数学证明部分。

即将开学,上课还有实验室都会很忙,所以觉得以前的低效率学习方法应该摒弃,不然找实习无望。
总的来说,感觉自己之前代码写得并没有感觉,所以不知道这样盲目写下去有没有用。
感觉现在大家都准备很充分,leetcode不学习两遍都不好意思和别人打招呼,我不喜欢用刷,我觉得根本没有刷的感觉。我一刀题目可能都需要做好多天,很多时候觉得自己分析清楚了,但是就是差一点点,或者是代码功力不够,老是觉得不太顺手,写的代码看着就不顺眼想摔电脑。最近一两个月就是松松散散没事做道hard,有时候做的很痛苦的时候,做一个medium easy缓缓神。
能想起来的最近ac掉的有skyline, minimum sliding window, regular expression, strStr(), 只能说每一个都是要了我的老命。比如一个kmp我真的觉得我都是花了800年才理解了50%,而且这种问题看起来也没有什么拓展性,就是0和1的区别,或者是,我还没有参透里面的奥义,其实很多东西本质上都是共通的。

我感觉代码不顺手的问题,通过大量编码可以慢慢提高;但是分析上不顺脑的问题,可能非常难办。
现在就是到了瓶颈期的感觉,觉得自己火候非常差,脑子处于浆糊状态。
希望有经验的牛牛们能给一些建议,我现在是处在什么阶段呢?是量变通往质变,只是练得太少;还是压根走错路,应该摒弃浮躁,认真回归严谨数学证明(但是stanford有一门算法课,跟了一半跟不下去,老是在证明。。。),百分之百彻底搞通一个题目不要随便写丑陋而无用的代码。
求教!

希望牛牛们多发表一些建议和讨论!在此谢过

评分

1

查看全部评分

stellari 发表于 2015-8-16 14:31:12 | 显示全部楼层
我觉得,如果你眼下的目的是找实习的话,多刷题是王道。如果遇到不会的题,想了很久都没想出来,我个人的看法是直接上网看别人的答案。这不是偷懒,当你看了很多别人的代码以后,慢慢就会自己总结出这类题解法的一般规律。面试题翻来覆去就是那些算法思路,你见的越多,现场就越容易遇到原题,就算没见过原题,也很容易往自己见过的题上靠。

追求算法的正确性证明对面试来说并没有太大的意义,面试里有时确实会要求你证明自己的算法是正确的。但我觉得你只要能“合理地说明”该算法是正确的就行了,不需要用到严谨的数学证明。更多时候,面试官是要求你分析时间和空间复杂度。循环程序的复杂度通常都比较好分析;递归形式的话,你写出时间复杂度的递推表达式,略一变形都可以很容易得到结果。最多再记一个Master定理就行了。我见过的所有面试题里,除了Combination Sum不太容易找到tight bound以外,其他的题用这种方法都能很快做出来。

评分

1

查看全部评分

回复 支持 3 反对 0

使用道具 举报

muybienw 发表于 2015-8-16 08:10:29 | 显示全部楼层
个人建议多刷点题。有些比较难的算法题,是不太可能一下子就完全掌握的,多做点题,会碰到类似思路的,能够加深理解:比如说用dp解决string匹配、two pointers、backtracking这些。
另外coursera的算法课是princeton那个吗?那个大作业没有做的话比较可惜,都是很有价值的练习。课程内容也值得好好复习下,像skyline就可以用2d intersection search的思路解决。
回复 支持 反对

使用道具 举报

 楼主| shuashua 发表于 2015-8-16 08:15:54 | 显示全部楼层
muybienw 发表于 2015-8-16 08:10
个人建议多刷点题。有些比较难的算法题,是不太可能一下子就完全掌握的,多做点题,会碰到类似思路的,能够 ...

不是没有写,是所有的作业只有两次还是三次没有写。
就是觉得现在刷得没有效率,不知道怎么改进现状
回复 支持 反对

使用道具 举报

 楼主| shuashua 发表于 2015-8-16 08:17:38 | 显示全部楼层
muybienw 发表于 2015-8-16 08:10
个人建议多刷点题。有些比较难的算法题,是不太可能一下子就完全掌握的,多做点题,会碰到类似思路的,能够 ...

不知道是不是因为还没有开窍
回复 支持 反对

使用道具 举报

jy_121 发表于 2015-8-16 11:41:52 | 显示全部楼层
同2015fall入学,跟你情况差不多
回复 支持 反对

使用道具 举报

lufan1989 发表于 2015-8-16 20:01:49 | 显示全部楼层
同2015fall入学 +1, 共勉
回复 支持 反对

使用道具 举报

新宿车站 发表于 2015-8-16 23:21:59 | 显示全部楼层
同!持续关注!
回复 支持 反对

使用道具 举报

 楼主| shuashua 发表于 2015-8-17 00:20:14 | 显示全部楼层
为什么牛牛们不涌现来解救我们,自己顶
回复 支持 反对

使用道具 举报

 楼主| shuashua 发表于 2015-8-19 23:30:41 | 显示全部楼层
stellari 发表于 2015-8-16 14:31
我觉得,如果你眼下的目的是找实习的话,多刷题是王道。如果遇到不会的题,想了很久都没想出来,我个人的看 ...

谢谢你的建议。
我感觉有些题目的确自己想不出来,然后看了答案之后几个关键的点get到就一目了然了,但是总觉得和自己的思维上好像没有得到锻炼,过段时间再看好像又觉得忘了一些。所以说归根结底还是做题量太少么?
回复 支持 反对

使用道具 举报

jimwallet 发表于 2015-9-5 10:24:31 | 显示全部楼层
缺少总结,背诵
回复 支持 反对

使用道具 举报

头像被屏蔽
cynthiazp 发表于 2015-9-5 14:26:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

matieee 发表于 2015-9-11 09:09:17 | 显示全部楼层
学习了,谢谢,高龄全职刷题中。
回复 支持 反对

使用道具 举报

pinocchio.chang 发表于 2015-12-22 13:13:38 | 显示全部楼层
同是2015 fall, 题感跟你差不多!!我都怀疑自己智商了,哈哈哈
回复 支持 反对

使用道具 举报

espange 发表于 2015-12-31 02:09:04 | 显示全部楼层
恩 我想知道 如果每道题都得看答案的话是不是应该回去先看点视频不要硬刷了?
= =
回复 支持 反对

使用道具 举报

calalia 发表于 2015-12-31 08:43:17 | 显示全部楼层
shuashua 发表于 2015-8-19 09:30
谢谢你的建议。
我感觉有些题目的确自己想不出来,然后看了答案之后几个关键的点get到就一目了然了,但 ...

我觉得 刷题的那些你看思路
然后你可以看地里面经锻炼思路
面经的重复率比刷题高很多 面试的时候经常有类似

然后就是
思路的话
我觉得CC150和网上的分类总结
比如leetcode DP总结 leetcode two pointers总结 这种很有用!!!!
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-11 06:55

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表