gpt4 book ai didi

ruby-on-rails - 在散列中找到低于前一个数字的第一个键/值的最快方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:53 25 4
gpt4 key购买 nike

所以基本上我有一个像这样填充整数的散列 ->

{5=>1, 3=>2, 2=>3, 1=>4, 4=>5}

您会注意到这些值是散列中第一个数字的位置。

我根据key对hash进行排序之后,看起来是这样的->

{1=>4, 2=>3, 3=>2, 4=>5, 5=>1}

我想做的是从原始哈希中删除第一个值低于前一个元素的元素。

所以我能想到的最明显的方法是:

lastvalue = -1
sortedNumbers.each{ |key,value|
if value < lastvalue
original_array.delete(key)
return "deleted element"
end

last_value = value
}

就正确性/速度而言,这是做到这一点的最佳方式吗?这甚至是解决一般问题的一种比较好的方法吗?

最佳答案

要比较 Enumerable 的连续值,请使用 #each_cons:

key = sortedNumbers.each_cons(2) do |(k1, v1), (k2, v2)|
break k2 if v2 < v1
end
sortNumbers.delete(key)

关于ruby-on-rails - 在散列中找到低于前一个数字的第一个键/值的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8057849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com