【012】Leetcode—數組—1351. 統計有序矩陣中的負數(Count Negative Numbers in a Sorted Matrix)

題目信息

給你一個 m * n 的矩陣 grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。

請你統計並返回 grid 中 負數 的數目。

提示:

  • m == grid.length
  • n == grid[i].length
  • 1 <= m, n <= 100
  • -100 <= grid[i][j] <= 100

示例:

1:

輸入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
輸出:8
解釋:矩陣中共有 8 個負數。

2:

輸入:grid = [[3,2],[1,0]]
輸出:0

3:

輸入:grid = [[1,-1],[-1,-1]]
輸出:3

4:

輸入:grid = [[-1]]
輸出:1

解題思路

        #功能:返回輸入List中負數的個數
        def countNeg(num):
            nlen = len(num)
            i = 0
            while i <nlen:
                if num[i] < 0:
                    return nlen-i
                i += 1
            else:
                return 0

        result = 0
        for item in grid:
            result += countNeg(item)
        return result

主要是構建一個子函數,功能是統計List中負數的個數,由於List是非遞增序列,所以一旦遇到負數,則List之後的元素均爲負,因此返回 nlen-1-i+1 = nlen-i,另外要考慮循環正常退出的情況

學習

TODO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章