详见https://leetcode.com/articles/jump-game/#
思路
dfs/bfs
dfs和bfs都是非常简单的思路。
在dfs中,可以通过最后一层的结果赋予上一层值,从而降低复杂度。
dp
这里我的思路是:i指针从后往前遍历。如果i指向的是一个好的点,那么将所有能一次到达i的点都赋值为好的点。
答案的思路是:依旧是i指针从后往前遍历。如果在i之后有i能到达的好的点,则i就是好的点。
显然答案的思路更好,可以更方便的进行下一步
贪心
在上一步中i所遍历的点能否到达取决于i能否到达好的点。所以我们只需要记录离i最近的好的点的位置。