作者suhang (suhang)
看板Prob_Solve
标题[问题] 如何再精进?
时间Fri May 17 10:03:20 2019
我以前并没有竞赛经验
为了工作面试而开始写leetcode, 最早连recursion都写得很痛苦
一边练习也一边跳槽,持续练习准备下次跳槽
也写了600+题了,很多题都反覆练习,每天下班持续练习个五题十题
我自觉常用(考)的dfs, bfs, sort, tree, stack, queue
binary search, trie, binary search tree
都算熟悉,都能很快写出模板并了解为什麽,但似乎就卡在这
好像就只会写模板题,常常稍有变化就卡住了
(高手们的"基本结构/算法"一定包含更广)
例如
https://leetcode.com/problems/ternary-expression-parser/
看了题我就直觉可以用 stack
因此我就从i=0 开始往後走,开始分析遇到 ? or : 该怎麽入栈出栈
但是越写越杂,总是过不了,
瞄了别人的做法 (开心!的确也可以用 stack解)
别人从最後往前走,条理分明,20行解决
另外又一题,这个例子更糟,完全没想法
https://leetcode.com/problems/max-chunks-to-make-sorted/
看了解答才知道,主要精神是求区间最大值,有两种主要做法
1 排序,然後对比原输入(类似greedy的概念)
2 用两个arr记录位置i左边最大的和右手边最小的元素(有点类似dp的概念)
看了也能懂,而且他们也没用更难的结构或是算法
但自己本身的状况就是糟,因为完全没有想法,
连挣扎都不知道怎麽抖,如果是面试,真的是乾整场
这些症头该怎麽办?我该怎麽更进一步?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 73.189.14.17
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1558058603.A.5D1.html
※ 编辑: suhang (73.189.14.17), 05/17/2019 10:09:41
1F:推 FRAXIS: 第一题 如果你没念过 Compiler 的话可以找相关的书看看 05/17 10:47
2F:→ FRAXIS: Compiler 上的技术是通用型的 不用太拘泥这种针对特殊题目 05/17 10:49
3F:→ FRAXIS: 的特殊解法 05/17 10:49
※ 编辑: suhang (73.189.14.17), 05/17/2019 16:17:59
※ suhang:转录至看板 Oversea_Job 05/17 16:18
4F:推 CoNsTaR: 面对没想法的题目,先不要去想着套你学的那些东西吧 05/19 09:09
5F:→ CoNsTaR: 先针对问题的需要找出困难点(把问题抽象),你自然就会 05/19 09:09
6F:→ CoNsTaR: 知道可能哪些技巧可以解 05/19 09:09
7F:→ CoNsTaR: 例如第二题,先想为什麽不能切成任意多块?很简单因为左 05/19 09:09
8F:→ CoNsTaR: 边那块必须没有包含比右边那块还大的值,那问题就变简单 05/19 09:09
9F:→ CoNsTaR: 了(抽象了),只要找左边的值有没有大於右边,然後你才 05/19 09:09
10F:→ CoNsTaR: 来想要用什麽资结演算法来帮忙 05/19 09:09
11F:→ CoNsTaR: 要是有方法可以单看问题描述就直接map到对应资结演算法 05/19 09:10
12F:→ CoNsTaR: 我和你买那个方法,太神了 05/19 09:10