Create Jump Game II

直接的方法是动态规划O(n2)时间，每个A[i]是当前可以走的最大的距离，逆向扫描数组，n-1的位置自然只需0步。往前扫描，没缩短一个单位，计算从当前位置，经过i到i+A[i]之间的某一个位置，再到达终点，需要的最小步数。
O(n)时间内可以用贪心算法，贪心策略是以最少的步数走到最远的距离。设一个变量minStep记录当前必须走的步数，lastMax记录上次达到的最远距离，maxBy1记录从当前位置可以达到的最远距离。扫描一遍数组，只有当指针超过lastMax时，才需要走一步。此时更新lastMax。