ChaseDream
搜索
返回列表 发新帖
查看: 2043|回复: 1
打印 上一主题 下一主题

algorithm刷题指南

[复制链接]
跳转到指定楼层
楼主
发表于 2019-1-28 09:23:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
的确DP和递归非常没思路几条建议如下:1。把DP,DFS, tree,hashmap等几个大类集中专项练习,https://space.bilibili.com/406692798?spm_id_from=333.788.b_636f6d6d656e74.12
2。把discussion里面的讨论搞通,然后写笔记;
3。第一遍的时候,限时半小时内集中精力想解法和画草稿子,到时间了就去看讨论;
4。经过这些反复的几遍练习,算法框架和知识体系会慢慢建立并且巩固
比如kmp, string, bit manipulation, linkedlist, binary search, tree traversal, graph traversal, bfs, dijkstra.. 有些题目没什么意思
https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=424621https://wdxtub.com/interview/14520850399861.html   https://wdxtub.com/page/2/
刚开始题目做得不够多,遇到的题型不够,是很容易出现没有思路的情况的;建议可以先按AC率刷,AC率高的题一般比较规范,也比较简单; 积累一定的做题量之后,可以在按照tag刷, 查缺补漏,做好总结
我以前也是。后来发现多刷几次就好了,可能第一次是看答案写的,第二次第三次就要试着自己写出来。另外,有些经典的题,可以试着背一下代码,然后这道题的套路可以用在其他题上。
太有同感了,原来是想要多刷题,到一定程度了就重复的刷。看来还是要总结归类才更有效果
也没啥,就是做的少了,等做得多了,再把几大套路总结下,就会发现其实也就那几种思路变来变去
我刷到100多题的时候和你感觉一样,然后刷到200多的时候就突然有些题能自己想出思路了!刷到快三百这种情况越来越频繁,很神奇仿佛任督二脉被打通了。所以我觉得你不要着急 这个是一个量变产生质变的过程 坚持刷下去,至少刷到200你会突然发现有一天自己也能想到正确的思路,所以还是题刷的不够,没有别的原因。不会了该看答案还要看答案,后来你发现很多题都是套路,比如什么题用sliding window什么题用hashmap都是有相似之处的。加油!继续刷会有很大进步的!
需要多刷几遍,看完答案可以隔一天再自己写,这样可以看看自己是不是彻底懂了

数学也就是逻辑啊,只不过cs是简单的大多数人可以理解的逻辑。其实machine learning那些个算法,也叫algorithm;只是跟数据结构的algorithm不同。

一个数学的算法,
一个计算机的算法


咱们都知道:
DP可以bottom-up 即用类似数学归纳法的边推进边记录每层结果,从而得到所有中间结果和最终结果,我个人就特别能接受这种风格,因为每步都一目了然!
DP还可以top-down,说白了就是递归或有人统称DFS,但是如果top-down都像斐波那契数列那么直观就好了,然而LC题目中的往往是需要在2层(或以上)循环中递归,并利用中间状态“有效的”创建符合题意的最终结果,这样我们能否对每层递归的中间结果做出清晰的预判就成了搭建递归算法的关键,我本人就是在这里特别拌蒜,特痛苦!就好像学开车刚开始上路实驾,老是拿在小区里散步的空间感来衡量高速路,所以就觉得时时刻刻都会跟百米远的车刮上... 说直白了就是经验没到,感觉还没到。多手动画画递归树,就会增强感觉,反正这是我的最底线的招数。
另外,多交流心得也是不错的。比如看看“高手”的视频讲解,给别人讲讲题解,自己给自己录音频或视频等等。
我本人的特点是领悟的特快,但忘的更快。所以,我只能针对自己的情况,把每次跟“LC的约会”当成初恋对待,不怕慢,但求刻骨铭心。当然您的情况可能不一样,那就要对症下药!
objective
没有见过写objective的 不做评价
但据我有限信息了解到 intern绝大部分都只要非临近毕业的在校生 楼主是只找intern不找全职吗?

education
无关的就不要提了 除非是编程奖项
GPA不投金融也不要提了

skills
java放第一个都知道是primary,把primary换成别的java package,framework之类
knowledge怪怪的 没见人放过. From 1point 3acres bbs

projects
说清楚你的project提升了什么或者达到了什么目的
比如第一个Campus  o2o  mobileapp,它的用户是谁,具体作用是什么?

experience
写详细一点 只用过一点也可以写夸张点

courses
没见过有人放的 也不做评价吧

publication
phd简历可以写2页
比起一些本科生的cs课程 这个才是phd的能力证明
收藏收藏 收藏收藏
沙发
 楼主| 发表于 2019-1-28 22:29:43 | 只看该作者
经验很多,但我不想让人觉得好为人师的大谈特谈。我觉个人经验来讲,一是合理安排时间吧。早上早点去,晚上早点走,这样晚上时间感觉多了很多。二是重视起来,增高要求,以前提交8次能过就算刷过,现在要求自己所有题一次提交过,编译错误最好也不要有,最好是连调试都不调,甚至连人脑检查都不检查(你当然可以边写边检查。面试时你写完最后一行,还没来得及检查,面试官就开始给你指bug了,所以保证写完就是bug free是合理要求)。不是天才的肯定不可能100%做到,做到60%就好。一般会提交多次才过都是懒得把某些细节想清楚,A不行改成B再提交一次就过了,但这么做面试肯定不行的。我感觉强迫自己提高要求刷题后coding水平有noticeable的提高。当然方法适不适合其他人我就不清楚了。这个练的差不多了可以去做LC contest,那个就是强迫你一次提交过,否则罚5分钟啊。最后一个我可能跟别的刷题的不一样的就是,我只做了100多道新题(我是先把所有Hard做完,然后medium,所以做的不多)和30道老题(以前刷过的),因为时间不够,我看(只想清楚,不写代码)了300题。。追求一个coverage,增加自己碰到原题的几率。
freemanlax 发表于 2017-8-28 06:14
多谢您的真诚答复!!!您为自己量身定做的刷题策略也证明了效果! 您3个月刷100 hard题,是不是大约每天 ...


这个我澄清一下,我以前刷过题,每次都是先把hard刷完,所以这次就是刷上回刷题后LC里新出的题,也就二三十道吧。刷完后主要还是刷medium大概有百十来道。然后就是把以前一些不太熟练的老题好题再刷一遍。
保持hard比较干净的好处是每次跳槽开刷压力不大,我刚看了下,我现在hard除去几道design题,只有6道没刷的,就是刚出的新题。我要现在再刷也就只需要刷6道hard,感觉很轻松。如果积100多道Hard,再跳槽刷题真心头大。
freemanlax 发表于 2017-8-27 20:41
您的hard题怎么刷?没思路的时候怎么处理?


只要想一阵,一般都会有思路。就是如何实现能达到“interview-friendly"的级别。很多高分答案并不是说算法惊奇,就是实现比较漂亮(我在LC也有几个top voted答案,知道大家喜欢啥),别人用了20个if else码了150行,高分答案就码了20行。
如果真心一点思路没有,那就先放着,刷别的题,也许你吃饭时,开车时就突然有思路了。

尽量不看答案,起码我是一直这么刷的。图啥?就图刷点自信,别人能做出来的题,我也一定能做出来。别人给不了自己自信,自己给。
个人真实案例,有轮面试一眼没思路慌的时候,脑子里告诉自己:想想你这几年遇到几道不会做的题?想想你上次面试算法题挂掉是几年前了?这题你绝不可能做不出来。这么想完就淡定了,不慌了,然后那题果真就被秒了。
ex:
Day1

1. 323. Number of Connected Components in an Undirected Graph
2. 494. Target Sum (4种解法,目前只看了DFS 相关的两种)
3. 261. Graph Valid Tree
同在职刷题,还在看CS61B
今天看:DFS, BFS, 2-3-4 tree
我今年就是4月到6月底白天上班,晚上刷题到1 2点,刷了3个月。最后双杀了FG。感觉值了
Day2

1. 116. Populating Next Right Pointers in Each Node
2. 491. Increasing Subsequences
3. 473. Matchsticks to Square什么是cs61b

就是Berkeley的课程

Day 3

1. 279. Perfect Squares
2. 643. Maximum Average Subarray I
3. 458. Poor Pigs
Day  4

1. 1. Two Sum
2. 2. Add Two Numbers
3. 3. Longest Substring Without Repeating Characters
Day  5 (周六有事出门了一天,回来只刷了一道medium,和两道easy,周末应该刷更多的。明天继续加油!)

1. 310. Minimum Height Trees
2. 422. Valid Word Square
3. 485. Max Consecutive Ones
[table]
Day 6 & 7

昨天不知道什么原因,另一个电脑没登录上论坛,就没打卡。 今天补上。这周开始专攻DP。头大的DP。

1. 120. Triangle
2. 64. Minimum Path Sum
3. 62. Unique Paths
4. 63. Unique Paths II
5. 55. Jump Game
6. 45. Jump Game II
[table]
Day  8

1.  139. Word Break
2.  131. Palindrome Partitioning
3.  132. Palindrome Partitioning II

DP 头大ing。。。
[table]
Day 9

1.  115. Distinct Subsequences
2.  97. Interleaving String
3.  72. Edit Distance

感觉时间不够用,争取这个月再过一边leetcode,下个月准备针对性的看面经。
[table]
Day 10

1.  221. Maximal Square
2.  198. House Robber
3.  213. House Robber II
[table]
Day  12

1.  Stone Game I && II
2.  Burst Balloons
3.  Scramble String, 优化的方法没看明白。。。明天继续。。[table]
Day  11

看了Trie 的内容
1.  208. Implement Trie (Prefix Tree)
2.  208. Implement Trie (Prefix Tree)
3.  212. Word Search II
[table]
Day 13

1.  207. Course Schedule
2.  210. Course Schedule II
3.  329. Longest Increasing Path in a Matrix

刷题的同时还要注意锻炼身体啊,楼主快躺下了
[table]
1.  269. Alien Dictionary
2.  329. Longest Increasing Path in a Matrix
3.  128. Longest Consecutive Sequence
4.  130. Surrounded Regions
5.  305. Number of Islands II
6.  200. Number of Islands

把union find 和 topological sort 刷了一遍
[table]
1.  336. Palindrome Pairs
2.  212. Word Search II
3.  79. Word Search
4.  425. Word Squares
[table]
1.  146. LRU Cache
2.  126. Word Ladder II
3. 126. Word Ladder
1.  1. Two Sum
2.  292 Nim Game
3.  2. Add two numbers
4.  344. Reverse String
5.  136. Single Number
6.   Roman to Integer
126. 127 Word Ladder I & II
297. Serialize and Deserialize Binary Tree
2Sum 系列
[table]
535. Encode and Decode TinyURL
297. Serialize and Deserialize Binary Tree
239. Sliding Window Maximum
451. Sort Characters By Frequency
238. Product of Array Except Self
89. Gray Code
199. Binary Tree Right Side View
347. Top K Frequent Elements
78. Subsets
102. Binary Tree Level Order Traversal
215. Kth Largest Element in an Array
380. Insert Delete GetRandom O(1)

[/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table][/td][/tr]
[/table]
您需要登录后才可以回帖 登录 | 立即注册

Mark一下! 看一下! 顶楼主! 感谢分享! 快速回复:

手机版|ChaseDream|GMT+8, 2025-1-19 11:21
京公网安备11010202008513号 京ICP证101109号 京ICP备12012021号

ChaseDream 论坛

© 2003-2023 ChaseDream.com. All Rights Reserved.

返回顶部