leetcode 1351 統計有序矩陣中的負數

2021-10-05 00:27:30 字數 1351 閱讀 8337

該題目可以分解為求一維陣列中比0小的數的個數, 和「荷蘭國旗」類似。但是更加簡單,因為次數一維陣列是有序的。

因為陣列是遞減排列,所以從後向前迴圈比較好

根據題目規則 從右上角開始搜尋:

例如二維陣列:

4 3 2 -1

3 2 1 -1

1 1 -1 -2

-1 -1 -2 -3

觀察可以得出規律如果乙個位置為負數,那麼它下面的就都為負數。

如果乙個位置為正數,那麼這個左邊的就都是正數。本題主要是為了統計負數,所以直接跳過即可

public

static

intcountnegatives

(int

grid)

int count =0;

int col = grid.length;

int line = grid[0]

.length;

int x =0;

//當前行

int y = grid[0]

.length -1;

// 當前列

// 從右到左

leetcode 1351 統計有序矩陣中的負數

1351.統計有序矩陣中的負數 難度簡單28 給你乙個m n的矩陣grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。請你統計並返回grid中負數的數目。示例 1 輸入 grid 4,3,2,1 3,2,1,1 1,1,1,2 1,1,2,3 輸出 8解釋 矩陣中共有 8 個負數。示例 2...

1351 統計有序矩陣中的負數

兩個小剪枝 二分要找到每行第乙個 0的數 int left 0 int right col 1 while left right if mid 1 grid i mid 1 0 else return cot 看題解受啟發,可以每次二分的時候,右邊界可以參考上一行的mid。如下面.第一行的 5 mi...

1351 統計有序矩陣中的負數 簡單

題目 於力扣 leetcode 目錄三 實現 四 執行用時 五 部分測試用例 1351.統計有序矩陣中的負數 說明 據題意 矩陣元素無論是按行還是按列,都以非遞增順序排列。遍歷矩陣,再每次遍歷乙個一維陣列 判斷當前一維陣列中的元素是否為負數 為負數時,即其後的元素也必定為負數,則該陣列中負數的個數為...