问题的预期输出是多少?如果目标是找到最早的时间,青蛙可以跳到河的另一边如何给出样品的答案出来6 ???
一只小青蛙想要到达河的另一边。青蛙是 最初位于河的一个河岸(位置0)并且想要 到达对岸(位置X + 1)。树叶落在树上 河的表面。
给出一个由N个整数组成的零索引数组A. 代表落叶。 A [K]代表其中的位置 一片叶子落在时间K,以秒为单位测量。
目标是找到青蛙可以跳到的最早时间 河的另一边。只有当叶子出现时,青蛙才能穿过 河对岸的每个位置从1到X(也就是说,我们想找到 从1到X的所有位置都被覆盖的最早时刻 树叶)。你可以假设河流中的电流速度是 可忽略的小,即叶子不会改变它们的位置一次 他们落在河里。
例如,给定整数X = 5和数组A,使得:
A [0] = 1 A [1] = 3 A [2] = 1 A [3] = 4 A [4] = 2 A [5] = 3
A [6] = 5 A [7] = 4在第二个6中,叶子落入位置5.这是 叶子出现在每个位置的最早时间 河流。
到达河的另一端所需的时间
或
X所在数组中的索引
或
包含最高数字的索引?
答案 0 :(得分:1)
要过河,青蛙需要在1到X(5)的所有位置都有叶子。这条河最初是空的;每秒一片叶子落入河中,在A[K]
指示的位置,其中K
是叶子落下的时间刻度。
叶片位置的给定序列,从时间0开始,是[1,3,1,4,2,3,5,4]。随着时间的推移,河流的覆盖范围(以5个单位宽度给出)就像这样,其中0
表示叶子,-
表示开放水域:
0 0 - - - -
1 0 - 0 - -
2 0 - 0 - - There are now 2 leaves in position 1
3 0 - 0 0 -
4 0 0 0 0 -
5 0 0 0 0 - ... and a second leaf at 3
6 0 0 0 0 0 ... and now, the frog can cross.
答案 1 :(得分:0)
红宝石 我正在尝试使用具有 N 复杂性的 Ruby 来实现这个问题。我将在树上的落叶上运行一个循环,每次落叶获得新位置时,我都会从我创建的路径数组中删除该位置需要的步骤。
def frogJump(x,arr)
path_array =(1..x).to_a
count = 0
for position in arr
if path_array.size > 0
count+= 1
path_array.delete(position) if path_array.include?(position)
end
end
puts count
end
x= 5
arr = [1 ,2, 3 , 1 , 4 , 2 , 3 , 5 , 4]
frogJump(x,arr)