给定一个非负整数数组,最初位于数组的第一个元素位置,数组中的每个元素代表你在该位置可以跳跃的最大长度,如何使用最少的跳跃次数到达数组的最后一个位置?...当前元素值为跳跃的最大长度,在没有任何前提支持下的最合适值就是元素最大值.
2. 在这个最大的跳跃范围内,需要选取一个合适值,保证下次跳跃能达到最大距离.
3....快指针,指向当前元素能跳跃到的最大位置,quickIndex=array[slowIndex] + slowIndex;并作为下次的慢指针....最大移步指针,用来查找本次跳跃范围内,指向下一次跳跃后,达到的最大距离所在元素位置;并作为下次跳跃的快指针.
按这个思路,我们一起分析下,上面数组是如何跳跃的.
1. 起始状态
2....通过上述流程,可以发现当我们不能从整体上给出一个最优方案时,可以只根据当前状态给出最好选择,做出局部意义上的最优解. 这种问题求解的思路叫做贪心算法.