ARTS - 第三周

340 阅读2分钟

ARTS 源于极客时间《左耳听风》专栏组织的一个学习打卡活动,四个字母对应着四个行动准则:

  • Algorithm:每周至少做一个 leetcode 的算法题
  • Review:阅读并点评至少一篇英文技术文章
  • Tip:学习至少一个技术技巧
  • Share:分享一篇有观点和思考的技术文章

Review

阅读并点评至少一篇英文技术文章

TODO 


Tips

学习至少一个技术技巧

SQL 优化技巧

复习索引原理 & SQL 优化实践 & explain 执行计划


Share

分享一篇有观点和思考的技术文章

创作文章:提高代码简洁度的工具类合集


Algorithm

每周至少做一个 leetcode 的算法题

simplify-path

常规编程题, 要考虑目录名为 /.../ 的这种特殊情况

jump-game

解题思路: 实际上没有使用动态规划/贪心,而是直接找规律

分析:
起点的序号为 0,设终点的序号为 dest

"能从起点跳到终点", 等价于 "在起点和终点之前至少存在一个点,可以直接一步跳到终点", 设这个点的序号为 m

原始命题等价于 "能从起点跳到 m 点"。

要证明上述两个命题等价,需要证明原始命题是后者的充分必要条件:

  1. 证明必要性:显然,如果能从起点到 m 点,m 可以一步跳到终点,那么从起点就可以跳到终点
  2. 证明充分性: 如果能从起点跳到终点,那么从起点就可以跳到所有的点,其中就包括 m 点

步骤:
从 dest 开始,从后往前找 m 点,

  • 如果找不过说明到达不了终点,
  • 如果找了满足条件的 m 点,那么就把 m 点设为 dest,开始下一轮循环,直到 m 变成 0 为止。