使用javascript在2-dim数组中查找元素的最有效方法

时间:2017-08-09 05:14:24

标签: javascript arrays big-o

我使用多项式O(n ^ 2)运行时来查找全1。然而,如果我的2维变得非常大,这种方法会受到影响。它会耗费时间。应该使用什么算法,你能重构代码吗?

function findAllOnes(input) {
  var s = '';
  locationsOfOnes = [];
  for (var y = 0; y < input.length; y++) {
    s = '';
    for (var x = 0; x < input[0].length; x++) {
      s = s + input[y][x].toString(); // this is just for output to show it in 2 dimensional view
      if (input[y][x] !== 0) {
        locationsOfOnes.push({x: x, y: y})
      }
    }
    console.log(y.toString() + '.)', s)
  }
  return locationsOfOnes;
}

您可以使用此实时工作代码 - https://jsfiddle.net/tLpa1f3s/

1 个答案:

答案 0 :(得分:2)

我不认为这可以比O(n ^ 2)更好地完成,因为你必须至少遍历一次数组以获得值等于1的位置。