算法:假设人从1走到n,则有n-1个以单位1的步,如果保证最后一步必需是1的话,那么从迈出最多的那步开始到最后一步要降序。所以关键在于找到最多的那一步是多少。最多的那一步两边应都是降序的,但可重复。原则是尽量以最大的步来走这段路,这样用的步骤才是最少的。
所以 (n-1)/2=1+2+3+4....,如果两边以上式一样列出的话,可能会有余数。如果两边的余数相加小于最大步的话,那么其中就会有一步是重复的,如果大于最大步的话,就有两步是重复的。
算法:假设人从1走到n,则有n-1个以单位1的步,如果保证最后一步必需是1的话,那么从迈出最多的那步开始到最后一步要降序。所以关键在于找到最多的那一步是多少。最多的那一步两边应都是降序的,但可重复。原则是尽量以最大的步来走这段路,这样用的步骤才是最少的。
所以 (n-1)/2=1+2+3+4....,如果两边以上式一样列出的话,可能会有余数。如果两边的余数相加小于最大步的话,那么其中就会有一步是重复的,如果大于最大步的话,就有两步是重复的。