【问题标题】:Given a binary matrix of 0 and 1. Find the longest sequence of 1's either row wise or column wise给定一个 0 和 1 的二进制矩阵。找到 1 的最长序列,无论是行还是列
【发布时间】:2018-06-12 04:05:39
【问题描述】:

给定一个由 0 和 1 组成的二进制矩阵。找出 1 的最长序列,无论是行还是列。 例如:

0 0 0 1 0 0

0 0 1 1 0 0

0 0 0 1 0 0

它应该返回最高计数 - 3。 求助,在js上写这个程序

  var cols = prompt("input cols", 4);
  var rows = prompt("input rows", 4);
  var arr = [];

  for (var i = 0; i < rows; i++) {
      arr[i] = [];

      for (var j = 0; j < cols; j++) {
          var rand = Math.round(Math.random() * 1);
          arr[i][j] = rand;
      }
  }

  console.log(arr);

  var str = arr.join('\n');
  console.log(str);

  var List = str.split(0);
   //----there is a code for  continuous sequence
  var max = 0;
  var array = str.split('1').forEach(function (item) {
      if (max < item.length) max = item.length;
  })

如何按行和列搜索以找到不间断的序列

【问题讨论】:

  • 你的矩阵是二维数组吗?请说明您使用的数据结构和您的尝试?
  • 欢迎来到 Stack Overflow! Stack Overflow 不是免费的代码编写服务,请展示您的代码/努力以及实际问题所在。
  • 您只需将详细信息添加到您的问题中。这里的每个专家都不太可能阅读 cmets 的详细信息。
  • @gurvinder372 好的)谢谢)
  • @Andreas 我编辑了问题,如何按行和列搜索以找到不间断的序列

标签: javascript matrix


【解决方案1】:
var max_1_row = -1;
var row_num = -1
var max_1_col = -1;
var col_num = -1
for (var i = 0; i < rows; i++) {
    var max_1_in_row = 0;
    var max_1_in_row_seq = 0;
    var max_1_in_col = 0;
    var max_1_in_col_seq = 0;
    for (var j = 0; j < cols; j++) {
        if (arr[i][j] == 1) {
            max_1_in_row += arr[i][j];
        } else {
            max_1_in_row = 0;
        }
        if (max_1_in_row > max_1_in_row_seq) {
            max_1_in_row_seq = max_1_in_row;
        }
//By Column
        if (arr[j][i] == 1) {
            max_1_in_col += arr[j][i];
        } else {
            max_1_in_col = 0;
        }
        if (max_1_in_col > max_1_in_col_seq) {
            max_1_in_col_seq = max_1_in_col;
        }
    }
    if (max_1_in_row_seq > max_1_row) {
        max_1_row = max_1_in_row_seq;
        row_num = i + 1;
    }
    if (max_1_in_col_seq > max_1_col) {
        max_1_col = max_1_in_col_seq;
        col_num = i + 1;
    }
}

console.log("行:" + max_1_row + " in row " + row_num + "\n 列:" + max_1_col + " in column " + col_num);

【讨论】:

  • 这只是一个快速代码。这段代码可能会更简单。
猜你喜欢
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多