LeetCode題解:統計有序矩陣中的負數
阿新 • • 發佈:2020-12-22
技術標籤:【演算法與資料結構】# 解題思想:二分法# 彙總:LeetCode題解LeetCode統計有序矩陣中的負數資料結構題解演算法
統計有序矩陣中的負數
一、題目
給你一個 m * n 的矩陣 grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。
請你統計並返回 grid 中 負數 的數目。
示例:
輸入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
輸出:8
解釋:矩陣中共有 8 個負數。
二、題解
/**
* @param {number[][]} grid
* @return {number}
*/
var countNegatives = function(grid) {
// 本題提前宣告,不存在空陣列情況
let rows = grid.length; // 行
let cols = grid[0].length; // 列
let row = 0;
let col = cols - 1;
let res = 0;
while (row < rows && col >= 0) {
// 一次排除一列或一行
if (grid[row][col] >= 0) {
row++; // 這一行判斷完畢
} else {
res += grid.length - row; // 注意這是記錄的是豎列負數的個數
col--; // 這一列判斷完畢
}
}
return res;
};
三、寫在最後
本文是附加題,可能僅僅藉助了二分思想中的一部分,加油!
如果對你有所幫助不妨給本專案的github 點個 star,這是對我最大的鼓勵
關於我
- 花名:餘光
- WX:j565017805
- 沉迷 JS,水平有限,虛心學習中
其他沉澱