数字数组中的最大值(Ruby)
我目前正在学习Ruby,为了我的生活,我找不到解决这个问题的方法: 返回数字数组中的最大值 输入:[5,17,-4,20,12] 产出:20 有人能帮我解决这个问题并解释他们为什么使用他们的解决方案吗 谢谢。只要使用 如果您学习并希望手动查找,可以使用循环 比如说数字数组中的最大值(Ruby),ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我目前正在学习Ruby,为了我的生活,我找不到解决这个问题的方法: 返回数字数组中的最大值 输入:[5,17,-4,20,12] 产出:20 有人能帮我解决这个问题并解释他们为什么使用他们的解决方案吗 谢谢。只要使用 如果您学习并希望手动查找,可以使用循环 比如说 max_value = -Float::INFINITY for item in [5, 17, -4, 20, 12] do max_value = item if item > max_value end max_v
max_value = -Float::INFINITY
for item in [5, 17, -4, 20, 12] do
max_value = item if item > max_value
end
max_value # => 20
在这个循环中,您逐个检查数组的所有元素,并将值max\u value
分配给当前最大的值
但是在Ruby中,最好使用每个来实现这一目的
max_value = -Float::INFINITY
[5, 17, -4, 20, 12].each { |item| max_value = item if item > max_value }
max_value # => 20
即使是一个想法,例如,这里的方式
[5, 17, -4, 20, 12].sort.last # => 20
正如你所理解的那样,这一切和方法。在Ruby中,它是一个非常强大的工具。这是从数组中删除字符并查找max的方法
[1,2,3,-4,'a'].map(&:to_i).max
你疯了吗?你正在教一个Ruby新手使用进行循环@CarySwoveland,你为什么这么生气?这只是一个例子:)我添加了每个
,可能是因为在任何代码评审中,Rubyist都会说“重写这个,让循环成为其他任何东西。”我们不喜欢它们。我们不使用它们。我们不教不熟悉这种语言的人使用它们。有更好的解决方案。最好是通过一个教程来介绍这些类型的东西。你尝试过什么?您遇到问题的代码是什么?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?请提供一个。
[1,2,3,-4,'a'].map(&:to_i).max