我真的不明白“最近的”是什么意思(Ruby)

时间:2016-07-13 04:06:56

标签: ruby

我正在研究一个问题,但我仍然不明白这个问题到底要求什么?

我不知道为什么([2,3,4,8],2)的预期输出等于3 也许3是最接近2的数字?或者数组中的其他数字?

我不明白下面的所有输出

请帮帮我!非常感谢你

这是下面的问题和输出:

  

编写一个函数nearest_larger(arr, i),它接受​​一个数组和一个    指数。该函数应返回另一个索引j:这应该    满足:

     

(a)arr[i] < arr[j],AND    (b)j2i相比j更接近arr[i] < arr[j2]。    如果是关系(参见下面的示例),请选择最早(最左侧)    这两个指数。如果arr中的号码不大于arr[i],    返回nil

     

难度:2/5

def nearest_larger(arr, idx)
end

puts("Tests for #nearest_larger")
puts("===============================================")
    puts "nearest_larger([2,3,4,8], 2) == 3: "  + (nearest_larger([2,3,4,8], 2) == 3).to_s
    puts "nearest_larger([2,8,4,3], 2) == 1: "  + (nearest_larger([2,8,4,3], 2) == 1).to_s
    puts "nearest_larger([2,6,4,8], 2) == 1: "  + (nearest_larger([2,6,4,8], 2) == 1).to_s
    puts "nearest_larger([2,6,4,6], 2) == 1: "  + (nearest_larger([2,6,4,6], 2) == 1).to_s
    puts "nearest_larger([8,2,4,3], 2) == 0: "  + (nearest_larger([8,2,4,3], 2) == 0).to_s
    puts "nearest_larger([2,4,3,8], 1) == 3: "  + (nearest_larger([2,4,3,8], 1) == 3).to_s
    puts "nearest_larger([2, 6, 4, 8], 3) == nil: "+ (nearest_larger([2, 6, 4, 8], 3) == nil).to_s
    puts "nearest_larger([2, 6, 9, 4, 8], 3) == 2: "+ (nearest_larger([2, 6, 9, 4, 8], 3) == 2).to_s
puts("===============================================")

1 个答案:

答案 0 :(得分:2)

方法nearest_input的参数是:

  1. 一个数组,
  2. 该数组的索引。
  3. 因此,在第一个示例中,该方法返回数组中值的索引,该索引的值大于索引2处的值。

    对于这个数组:[2,3,4,8]

    • 索引2处的值为4.
    • 下一个最高值是8.
    • 值8的索引是3.