一只蜗牛在白天爬上了x英尺的墙。经过一整天的劳作,它停下来休息了一会儿...但是睡着了!第二天早上醒来后,它发现在睡觉时滑落了y英尺。
如果这种情况每天都发生,那么蜗牛要爬n堵不同高度的墙,需要爬多少次?
我已经编写了一个函数来计算蜗牛爬行的次数,如下所示:
void count(int move_forward, int move_backward, int number_walls, int[] height)
{
int count = number_walls, diff = move_forward - move_backward;
while (number_walls--)
for (move_backward = move_forward; move_backward < height[number_walls]; move_backward += diff)
count++;
}
程序目前运行良好。但我想知道是否有其他方法来解决这个问题,以进一步优化程序的速度。
O(height)
(你尝试的方式)降至O(1)
(amit 的解决方式)。 - dmckee --- ex-moderator kitten