gpt4 book ai didi

Ruby - 给定一个嵌套数组的数组,如何仅比较每个嵌套数组的最后一个值来找到最大值?

转载 作者:行者123 更新时间:2023-12-02 18:05:48 25 4
gpt4 key购买 nike

初学者尝试创建一个简单的股票选择器程序。到目前为止,我的程序采用代表股票价格的整数平面数组(指数是天)并返回嵌套数组的数组。每个嵌套数组都有三个值[每个连续的买入日指数、最佳卖出日指数、利润]。就像这样:

stock_prices = [17, 2, 20, 6, 9, 15, 8, 1, 15, 15]
best_days = [[ 0, 2, 3], [ 1, 2, 18], [ 2, 5, -5],
[ 3, 5, 9], [ 4, 5, 6], [ 5, 8, 0],
[ 6, 8, 7], [ 7, 8, 14], [ 8, 9, 0]]

我想找到最大利润日,然后返回一个数组,其中包含当天买卖日的索引值。在这种情况下,它将是:

absolute_best = [1, 2]

如何迭代嵌套数组的数组,但仅比较每个嵌套数组的最终值?

最佳答案

要按条件查找最大数组元素(此处:其第三个元素的值),您可以使用 max_by以各种方式。

使用array decomposition提取第三个元素:

best_days.max_by { |a, b, c| c }

# or

best_days.max_by { |_, _, c| c }

# or

best_days.max_by { |*, c| c }

按原样使用数组并检索其 last值:

best_days.max_by { |ary| ary.last }

# or

best_days.max_by(&:last)

以上所有返回[1, 2, 18]

除了 max_by 之外,还有 sort_by可用于按利润对数组进行排序。

关于Ruby - 给定一个嵌套数组的数组,如何仅比较每个嵌套数组的最后一个值来找到最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73276763/

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