JSFiddle - React, Tailwind, and code Playground

by Abhishek Kumar

JavaScript

let data = [
  [0, 1, 0],
  [1, 0, 0],
  [1, 1, 0],
  [0, 1, 0],
  [0, 1, 1]
];

let duri = [], winner = 0;

for (let i = 0; i < data.length; i++) {
  let dist = [];
  for (let c = 0; c < data[i].length; c++) {
    dist[c] = (data[i][c] == 1) ? 0 : -1;
  }
  /* console.log(dist) */
  for (let l = i - 1; l >= 0; l--) {
    for (let j = 0; j < data[l].length; j++) {
      if (data[l][j] == 1 && dist[j] == -1) {
        dist[j] = i - l
      }
    }
  }
  /* console.log(dist) */
  for (let r = i + 1; r < data.length; r++) {
    for (let j = 0; j < data[r].length; j++) {
      if (data[r][j] == 1 && (dist[j] == -1 || dist[j] > r - i)) {
        dist[j] = r - i
      }
    }
  }
  /* console.log(dist) */
  let score = Math.max(...dist);
  duri[i] = [...dist, score];
	
	let lastMinScore = (i > 0) ? duri[i-1][duri[i-1].length-1] : 0;
	winner = (score < lastMinScore) ? i : winner;
}

console.log(duri, winner);