ruby - 获取数组中值的最大连续出现次数

标签 ruby arrays

下面有没有更优雅的方法来实现这个:

输入:

array = [1, 1, 1, 0, 0, 1, 1, 1, 1, 0]

输出:

4

我的算法:

streak = 0
max_streak = 0

arr.each do |n|
  if n == 1
    streak += 1
  else
    max_streak = streak if streak > max_streak
    streak = 0
  end
end

puts max_streak

最佳答案

类似于w0lf's answer , 但通过从 chunk 返回 nil 来跳过元素:

array.chunk { |x| x == 1 || nil }.map { |_, x| x.size }.max

关于ruby - 获取数组中值的最大连续出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700939/

相关文章:

objective-c - 帮助加载大量数据

c - 如何在 C 中的数组的任何部分设置 "empty"元素

python - 坐标的 Numpy 矩阵

ruby-on-rails - 更改 faker gem 电话号码格式

ruby-on-rails - rails : Retrieve the latest record from multiple associated models

ruby - 使用 rbenv 安装 Ruby 的 gems

python - 将 Ruby 中的 json 响应移植到 Python

java - 存储非常大的数组

javascript - 获取数组中最长的列表标题名称 javascript Sharepoint

ruby-on-rails - before_filter或rescue创建新记录