查找行号布尔矩阵最大数1s

时间:2019-12-02 16:40:51

标签: javascript algorithm optimization

*我有布尔数组*

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

如何找到最大1s 我想用javascript解决 这是我的围裙

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

var indexValue = 0
var count = 0
array.forEach(function(element, index) {

  var value = element.reduce(function(a, b) {

    return a + b

  })
  if (value > count) {
    indexValue = index
  }

})
console.log(indexValue)

此代码很完美,但我想在代码中进行更多优化

1 个答案:

答案 0 :(得分:0)

根据我的判断,这并没有进一步优化,但是,如果您愿意,它是解决问题的另一种方法。

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

var indexValue = 0
var best = 0
array.forEach(function(element, index) {
   var val = element.filter(v => v == 1).length;
   if(val > best){
      best = val;
      indexValue = index;
   }
});
console.log(indexValue)