45.跳跃游戏II难度媒介
给您一个非负数组,您处于阵列的第一个位置。
数组中的每个元素代表您可以在此位置跳跃的最大长度。
您的目标是使用最小的跳跃来达到阵列的最后位置。
假设您始终可以到达数组的最后位置。
示例1:
示例2:
暗示:
这个问题吐了我并尝试了各种贪婪,但是在所有方法之后,我去看了官方的问题解决方案。动态转移方程式,这真的使我震惊。知道有人说这是贪婪+动态的,我开始了要分析贪婪的地方和动态的位置,所以我了解此代码。
贪婪是指每次采取此步骤时可以达到此步骤的最大距离(i + nums [i]),而不是考虑可以达到的下一步(例如,[2,3,1,1,,1、1、1、1、1、1、1、4],第一步可以分两个步骤,我不在乎3个数字后最大的事情)
这里的动态计划非常隐藏,通常有动态传输方程和动态数组,但是这里很难检测到的动态。一旦到达边界i ==结束,状态结束== maxpos将被更新,以便这将是下一步。
MAXPOS 0 2 4 4 4 END 0 2 2 4步骤0 1 1 2 2上面的图表将到达边界i = 0或i = 2,端= maxpos将被更新。当您达到步骤-By -step Boundare时,更新到这些步骤的最大值。
原始:https://juejin.cn/post/709747875711791646