ARTS 源于极客时间《左耳听风》专栏组织的一个学习打卡活动,四个字母对应着四个行动准则:
- Algorithm:每周至少做一个 leetcode 的算法题
- Review:阅读并点评至少一篇英文技术文章
- Tip:学习至少一个技术技巧
- Share:分享一篇有观点和思考的技术文章
Review
阅读并点评至少一篇英文技术文章
TODO
Tips
学习至少一个技术技巧
SQL 优化技巧
复习索引原理 & SQL 优化实践 & explain 执行计划
Share
分享一篇有观点和思考的技术文章
创作文章:提高代码简洁度的工具类合集
Algorithm
每周至少做一个 leetcode 的算法题
simplify-path
常规编程题, 要考虑目录名为 /.../ 的这种特殊情况
jump-game
解题思路: 实际上没有使用动态规划/贪心,而是直接找规律
分析:
起点的序号为 0,设终点的序号为 dest
"能从起点跳到终点", 等价于 "在起点和终点之前至少存在一个点,可以直接一步跳到终点", 设这个点的序号为 m
原始命题等价于 "能从起点跳到 m 点"。
要证明上述两个命题等价,需要证明原始命题是后者的充分必要条件:
- 证明必要性:显然,如果能从起点到 m 点,m 可以一步跳到终点,那么从起点就可以跳到终点
- 证明充分性: 如果能从起点跳到终点,那么从起点就可以跳到所有的点,其中就包括 m 点
步骤:
从 dest 开始,从后往前找 m 点,
- 如果找不过说明到达不了终点,
- 如果找了满足条件的 m 点,那么就把 m 点设为 dest,开始下一轮循环,直到 m 变成 0 为止。