我以前并没有竞赛经验
为了工作面试而开始写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的概念)
看了也能懂,而且他们也没用更难的结构或是算法
但自己本身的状况就是糟,因为完全没有想法,
连挣扎都不知道怎么抖,如果是面试,真的是干整场
这些症头该怎么办?我该怎么更进一步?