fuck leetcode 🦉
-
DP(Dynamic Programming): 动态规划思维,找准定义 某个互斥状态下 的递推模型公式,通过需求,定义问题,抽象公式模型,初始化状态,确定逻辑顺序编码解决问题(递推状态思维,需要逆向定义,正向推进状态得到结果,过程会有差异化);
-
RBT(Recursive BackTracking): 递归回溯,逆向思维,利用计算机程序的递归入栈处理,定义截止条件出栈,获取到子结果集时需要回溯(逆向思维,一般把问题枚举出来,形成递归树,然后深度优先搜索,然后回溯上一层,再次搜索);
何时使用回溯算法 当问题需要 "回头",以此来查找出所有的解的时候,使用回溯算法。 即满足结束条件或者发现不是正确路径的时候(走不通),要撤销选择,回退到上一个状态,继续尝试,直到找出所有解为止 怎么样写回溯算法(从上而下,※代表难点,根据题目而变化) ①画出递归树,找到状态变量(回溯函数的参数),这一步非常重要※ ②根据题意,确立结束条件 ③找准选择列表(与函数参数相关),与第一步紧密关联※ ④判断是否需要剪枝 ⑤作出选择,递归调用,进入下一层 ⑥撤销选择 DFS 和回溯算法区别 DFS 是一个劲的往某一个方向搜索,而回溯算法建立在 DFS 基础之上的, 但不同的是在搜索过程中,达到结束条件后,恢复状态,回溯上一层,再次搜索。 因此回溯算法与 DFS 的区别就是有无状态重置
-
“物来顺应,未来不迎,当时不杂,既过不恋” -- 曾国藩
-
"Yesterday is a history, tomorrow is a mystery, only today is a gift, that is why we call it present. " -- 功夫熊猫 (inner peace)
- ”路漫漫其修远兮,吾将上下而求索“ -- 屈原《离骚》
- "众里寻他千百度。蓦然回首,那人却在,灯火阑珊处" -- 辛弃疾《青玉案·元夕》
- "道生一,一生二,二生三,三生万物" -- 老子《道德经》
- "万物之始,大道至简,衍化至繁" -- 老子《道德经》
动刀之前,想好解决问题的思路,勤加修炼,抓住本质,举一反三,奥利给~!