Frog River 1问题的预期产出是多少?

时间:2018-03-07 02:12:54

标签: algorithm performance data-structures

问题的预期输出是多少?如果目标是找到最早的时间,青蛙可以跳到河的另一边如何给出样品的答案出来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所在数组中的索引

包含最高数字的索引?

2 个答案:

答案 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)