Each row and each column are already SORTED in the given matrix! 

 

const mix = [[-3, -2, -1, 3], [-1, 0, 1, 3], [0, 2, 4, 5]];

/**
 * Start from top right slot, go from right to left, top to bottom
 * case 1; If the current value is larger than 0, keep moving to left
 * case 2: if the current value is smaller than , menas the rest of value should
 *  also less than zero, count = count + 1 + j
 *  then move to next row
 */
// findNegativeNumbers :: [num] -> num
function findNegativeNumbers(data) {
  let count = 0;
  let i = 0,
    j = data[0].length - 1;
  while (i <= data.length - 1 && j >= 0) {
    const current = data[i][j];
    if (current >= 0) {
      j--;
    } else {
      count += j + 1;
      i++;
    }
  }
  return count;
}

console.log(findNegativeNumbers(mix)); // 4

 

相关文章:

  • 2021-10-29
  • 2022-12-23
  • 2021-06-03
  • 2022-12-23
  • 2021-05-22
  • 2021-10-30
  • 2021-09-30
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-01
  • 2021-12-10
  • 2021-05-11
  • 2021-11-13
  • 2021-11-20
相关资源
相似解决方案