在上一篇文章中我们看到了Jump Game这道算法题,这个题目还有第二问,这就是LeetCode中的第45号题目,Jump Game II,题目还是给定一个数组,这次我们可以认为一定可以从开头跳到数组结尾,要求我们计算出最少只需要几步就可以跳到最后。
比如给定数组[2,3,1,1,4],那么我们的函数需要返回2,我们只需要从2跳到3,然后从3跳到最后的4,这样我们只需要两步就可以了,这是从开头跳到结尾需要的最少步数。
那么该怎么解决这问题呢?
思路
对于这个问题我们可以继续使用反向思考的方法,我们来考虑一下那些位置可以直接跳到最后,如图所示: