亚麻OA求砸,面经神衣护体!


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 72890|回复: 99
收起左侧

[其他] 应该怎么样刷题?

    [复制链接] |试试Instant~ |关注本帖
纠结帝 发表于 2013-12-31 07:20:52 | 显示全部楼层 |阅读模式

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

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

x
大家刷题的时候卡住了怎么办?  

看答案之后理解答案了,但是过几天再看题目,自己感觉还是做不出来啊。感觉是理解答案了,但是“理解”和自己有能力“做出来”不是一个概念啊。怎么样才能让水平从“理解”提高到“做出来”呢?  

做不出来看答案花半天才能明白已经够挫败了,过几天回过头看又忘记怎么做了感觉更挫败了!

请问大家都是怎么样刷题的?

鄙人最近刚刚开始刷题,感觉各种挫败啊!

刷题的时候是不是应该保证自己做过的每道题不管什么时候再遇到都应该会做,刷完可以忘记怎么做第二次刷的时候再回过头巩固?

谢谢大家!大家新年快乐!

评分

6

查看全部评分

本帖被以下淘专辑推荐:

mything 发表于 2015-3-30 15:36:36 | 显示全部楼层
我觉得如果一点算法和数据结果都不知道的话,要先学一门算法和数据结构的课,里面复杂的数学推导和证明可以不管,但是一定要会分析时间和空间复杂度,这是面试必问的。

有了数据结构和算法的基础,之后我推荐Programming Interview Exposed,里面有大段分析,讲一个怎样分析一个问题,然后想出BF方案,再优化的过程,我觉得讲的非常好。这本书看完,就可以刷CC150或者Leetcode了。不过不管是看书还是刷Leetcode里面的题,一定要自己想结果,一个题至少要想个十几分钟乃至几小时,如果实在想不出来,再去看答案,如果想出了方案,再自己想想怎么能优化不?之后再看答案,对比一下自己为什么没想到最优方案,然后一定要彻底理解这个最优方案,如此下来遇到同样甚至变形的题才会有思路。

强调一下:直接看答案或者只想很短时间就看答案收获是比较小的,只有自己仔细想了,收获才最大!

以上个人意见,欢迎大家讨论,一起找到Dream Job!

评分

3

查看全部评分

回复 支持 20 反对 1

使用道具 举报

zhuli19901106 发表于 2015-6-23 06:37:52 | 显示全部楼层
感觉要守住两个原则:
1. 坚决不用IDE
2. 坚决不运行
因为面试只有白板和纸笔,调试靠脑子。所以训练的时候就坚持用脑子调试吧。
还有就是慎重对待每次提交吧,追求1AC,毕竟做到bug-free很难,所以平时训练必须尽力追求bug-free。(新人刚注册。如有不懂规矩的地方,还请指正。)

评分

1

查看全部评分

回复 支持 2 反对 7

使用道具 举报

readman 发表于 2013-12-31 09:04:02 | 显示全部楼层

额。。我不知道申请intern需要看什么。 我看你给的链接里面的题。。貌似太简单了。。。我面试的时候遇到的比这个难得多。。
另: 我用Java面试的,因为从小写程序,所以书不是很全,我看过的面试书:
java数据结构和算法中文第二版  --> CTCI  --> 编程之美(微软面试那个) --> 算法导论 --> 高老头那本破书

最后一个不用看, 看到算法导论,能动心忍性啃下去的,基本已经能进Google了。 其实看完CTCI就可以去面试了。
我个人觉得面试和在家里做的感觉差很多, 我其实当刷leetcode到80多(AC排序)的时候, 就疯狂报名面试,反正我要去美国,我把国内的公司都面过一边,败了我也不在乎, 就当是打怪升级了。 80多题的时候, 感觉其实知识已经差不多了,因为面试更注重技巧和与面试官的交流思想。有时候,你刷题再多,面试官想爽你一下, 你临场就是想不起来,所以我觉得比刷题更重要的是和面试官的交流,让他知道你的思想。
我亲身经历过一次startup的招聘,因为是职位问题,题很难,又是用Scala(JVM上的一种语言)。该startup的CTO亲面,我印象很深的是,他和我们一起组个team,然后另外一个人出题, 当时他也不知道出的是什么,然后我们一起解决问题。 他也参与讨论。 我貌似在地里没看过这种面法。我当时很紧张,加上咱英语不是母语,哎。。不过那次我看到烙印与出题人的交流,我觉得那是很重要的技能。

经验就是如上。。也许面fresh grad不用太多交流吧(我看地里貌似都是直接去,拿题就写,写完就雇)。以上仅是我个人经验分享

评分

2

查看全部评分

回复 支持 3 反对 1

使用道具 举报

doveonthewing 发表于 2014-1-5 15:05:48 | 显示全部楼层
我的经验是,刷两遍,第二遍的时候就会豁然开朗了。

评分

1

查看全部评分

回复 支持 4 反对 0

使用道具 举报

readman 发表于 2013-12-31 08:15:13 | 显示全部楼层
直接刷题必败, 先看书. 书是人类进步的阶梯.
我个人觉得看别人讨论也没用, 因为对题型变种不可能全部包含.
所以建议先别看cc, 先补下知识.
理解 -> 做出来  是这样的:
你要理解的不是别人做题的方法, 而是他是怎么想到这么做的. 比如看到什么类的题想到什么方法.
推荐
http://blog.csdn.net/u011095253/article/details/9158387
你可以看这个作者写的.
里面他类比dfs这种理论, 在不同应用上的代码之间的区别.
和如何用最小的修改(几个关键点在dfs算法上)来满足题目要求.
比如subset中, for的i=pos; 就是关键点. 要记住.

评分

2

查看全部评分

回复 支持 3 反对 1

使用道具 举报

liwzhi 发表于 2014-4-14 07:44:10 | 显示全部楼层
作为新手,先刷题,五分钟想不出来 看答案。我感觉还是要先看感觉,后面的题目,你就有思路了。

不然新手,是学不动的。

评分

1

查看全部评分

回复 支持 2 反对 1

使用道具 举报

plich 发表于 2015-10-31 02:57:54 | 显示全部楼层
zhuli19901106 发表于 2015-6-23 06:37
感觉要守住两个原则:
1. 坚决不用IDE
2. 坚决不运行

刚不可久,不推荐“坚守”这种原则……
刷题主要目的还是引导自己掌握知识

至于面试发挥,弄几次mock interview就知道自己改怎么改进了

评分

1

查看全部评分

回复 支持 3 反对 0

使用道具 举报

meow6589 发表于 2015-6-29 03:50:39 | 显示全部楼层
个人目前的战略是先用python刷,因为Python语法简单,还不用一大堆初始化的东西,效率很高。
然后完全不看答案,按照easy->medium->hard 的顺序刷,系列题也是按照先后顺序刷

个人认为靠着看答案做出来的题永远记不住,所以坚决坚持独立做题。只有在testcase通过,但是时间分布跟其他人差很多,又实在想不出来其他方法的时候去看hint tag

这样一遍刷下来,起码算法思想就具备了。然后下一遍准备改用java细扣语法实现。在第二遍刷的时候也可以在实现出自己算法的前提下去看别人比较好的解题方式。

以上为CompE,CS等专业的刷题方法。如果是其他专业。。。强烈建议还是先去看书,不然知道100道题怎么解,也不一定知道背后的系统道理

评分

1

查看全部评分

回复 支持 2 反对 0

使用道具 举报

鸽子 发表于 2014-8-13 11:51:33 | 显示全部楼层
我基本上没有cs和算法基础,只上过java课。
我自己的经验是先刷leetcode,按照容易到简单的顺序,因为开始看cc时候都看不进去。刷过一遍leetcode后(其实后期都是上网查答案的)再看一遍cc,再去leetcode上把cc上类似的题再刷一遍,同时可以看一些公开课了解基本原理。再刷leetcode时候就分类别的刷,就发现一些题的解法都类似了。(经常羡慕一些大神可以一天刷几十道题>_<自己不行啊,就只能慢慢来了)

评分

1

查看全部评分

回复 支持 2 反对 0

使用道具 举报

z26zheng 发表于 2017-9-6 16:29:55 | 显示全部楼层
本人CS海本, 目前在微软. 来分享一下我之前的刷题方式:
1. 一定要掌握本科学过的data structure 和 algorithm: tree, array, list, trie; sort, search, dp, greedy等等. 几乎每一个大学的计算机专业都会包含这些东西. 我当时粗略读了读Cracking the coding interviews (150). 花了一周左右吧. 这本书是基础,不过题目太简单太老了, 几乎不会遇到. 第一次读的话可能还会更久一点, 迈出这个第一步我觉得是最难得一个阶段.
2. 熟练一个语言. 本人用c++, 其实很多语言都差不多,建议的有:c++, java, python, javascript. 原因是这些在工作中最长用到, 而且功能强大. 对语言熟练程度的训练,在刷题过程中能提高很多, 不过业余时间,刷题刷累了,也可以读一读stack overflow, quora 等帖子. 这个学习过程虽然不系统,不过很实用. 很多知识都是这样一点一滴积累起来的.
3. 刷题, 我用leetcode. 这个是必须的, 跟在国内准备高考是一个原理,就是题目见多了,很多东西一看就知道怎么做,而且题目变形也很容易就看出来. 就像之前说的, 第一部迈出后,这里就没有心理压力了,就是一道一道的刷. 在刚开始可以按照题目类型刷, 比如都是DP, 然后都是 tree. 这个过程你会慢慢体会到每种题型的特点和精髓. 之后可以按照公司刷, 尤其是在准备面试前一个月, 把一个公司的题目都过一遍,或者更多遍.
4. 看面经. 这个论坛里面就有很多面经, 如果你刷的题目够多, 这个阶段就是简单看一下最近流行的题目. 如果没刷够,这个阶段会比较吃力比较慢.因为面经内容大多比较散, 不规整, 看起来会一头雾水, 不知所云.
回复 支持 1 反对 0

使用道具 举报

tim900925 发表于 2013-12-31 07:25:20 | 显示全部楼层
我也刚开始做CC的题,也在考虑这个问题。。
目前的打算是每题先尽量自己多想不同的方法,然后上论坛看以前刷题的童鞋们的讨论,之后再看书本答案

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2013-12-31 08:36:23 | 显示全部楼层
readman 发表于 2013-12-31 08:15
直接刷题必败, 先看书. 书是人类进步的阶梯.
我个人觉得看别人讨论也没用, 因为对题型变种不可能全部包含. ...

感谢前辈分享经验!

【你要理解的不是别人做题的方法, 而是他是怎么想到这么做的. 比如看到什么类的题想到什么方法.】 这个大赞啊!感觉就和学高中数学一样啊!看答案都明白,自己做的时候就是想不出来!问大牛们怎么做出来的,大牛们也说不出自己是怎么想到的!

但是“怎么想到这么做的”这个是不是也是靠多做题锻炼出来的“直觉”?

菜鸟还没有开始看CTCI,还在刷第二遍PIE里面的linked-list,tree, arrary&string,recursion, sorting(第一遍是一个月前刷的)。因为要要申请的intern是针对freshman和sophomore的,感觉问的都是比较基础的data structure的题目(http://www.1point3acres.com/bbs/ ... neering%2BPracticum)所以觉得只刷这几章的内容应该够了

【所以建议先别看cc, 先补下知识.】应该怎么样补知识? data structure&algorithm的课下学期才上,现在刷题前是不是应该自己看网上的公开课之类的?还是一边刷一边看?
【直接刷题必败, 先看书】前辈有没有什么书推荐?

谢谢!

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2013-12-31 09:21:57 | 显示全部楼层
本帖最后由 纠结帝 于 2013-12-31 09:24 编辑
readman 发表于 2013-12-31 09:04
额。。我不知道申请intern需要看什么。 我看你给的链接里面的题。。貌似太简单了。。。我面试的时候遇到的 ...

感谢分享!

我应该也是用java面试。
因为那个intern项目是针对大一大二的,题目确实比regular的简单很多.....但是菜鸟还是没把握啊!

请问leetcode和CTCI相比,哪个难一点?

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

readman 发表于 2013-12-31 09:34:06 | 显示全部楼层
纠结帝 发表于 2013-12-31 09:21
感谢分享!

我应该也是用java面试。

leetcode
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2013-12-31 09:45:25 | 显示全部楼层
tim900925 发表于 2013-12-31 07:25
我也刚开始做CC的题,也在考虑这个问题。。
目前的打算是每题先尽量自己多想不同的方法,然后上论坛看以前 ...

感谢分享 我也差不多是这样
回复 支持 反对

使用道具 举报

硕果阳光 发表于 2014-1-1 10:05:46 | 显示全部楼层
求问 CTCI是啥?
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-1-2 02:35:37 | 显示全部楼层
硕果阳光 发表于 2014-1-1 10:05
求问 CTCI是啥?

cracking the coding interview
也叫CC150 /CC
回复 支持 1 反对 0

使用道具 举报

pyemma 发表于 2014-1-5 09:25:05 | 显示全部楼层
求问CTCI那个只有那本书吗?刷题就是直接做上面的题,有没有在线的网站能够评判对错啊?
回复 支持 反对

使用道具 举报

nkbuaayl 发表于 2014-1-5 14:19:30 | 显示全部楼层
pyemma 发表于 2014-1-5 09:25
求问CTCI那个只有那本书吗?刷题就是直接做上面的题,有没有在线的网站能够评判对错啊?

没有在线评判,但是你可以自己写test function,不是很难啊,几种不同情形的case都测试过就可以了,每一个题就相当于一个unit test
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-1-6 06:45:54 | 显示全部楼层
doveonthewing 发表于 2014-1-5 15:05
我的经验是,刷两遍,第二遍的时候就会豁然开朗了。

谢谢!我感觉也是这样,做完PIE之后再刷CTCI就有豁然开朗的感觉了! 谢谢!
回复 支持 反对

使用道具 举报

zihaolucky 发表于 2014-1-6 09:57:07 | 显示全部楼层
纠结帝 发表于 2014-1-6 06:45
谢谢!我感觉也是这样,做完PIE之后再刷CTCI就有豁然开朗的感觉了! 谢谢!

what is PIE?
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-1-6 11:50:01 | 显示全部楼层

programming interviews exposed
回复 支持 反对

使用道具 举报

atlas1017 发表于 2014-1-8 01:07:18 | 显示全部楼层
纠结帝 发表于 2013-12-31 09:21
感谢分享!

我应该也是用java面试。

google practicum  explore MSFT么
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-1-8 12:14:20 | 显示全部楼层
atlas1017 发表于 2014-1-8 01:07
google practicum  explore MSFT么

希望有面试......还不知道
回复 支持 反对

使用道具 举报

atlas1017 发表于 2014-1-8 12:42:23 | 显示全部楼层
纠结帝 发表于 2014-1-8 12:14
希望有面试......还不知道

哈 我也申请了 也是还没有面试呢
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-1-8 12:45:32 | 显示全部楼层
atlas1017 发表于 2014-1-8 12:42
哈 我也申请了 也是还没有面试呢

两个都申请了? ms那个explor应该希望不是很大了吧  上学期的时候MS已经组织过面试了 intern可能已经满了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-10-18 23:07

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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