類的內部呼叫解決事務、aop失效的問題
阿新 • • 發佈:2021-10-15
暴力搜尋
遍歷整個二維陣列,時間複雜度O(mn),空間複雜度O(1)
線性查詢
從右上角出發,如果右上角的數字等於target,已找到,如果大於target,向左移一列。小於target,這一行必定都小於target,向下移動一行。最多移動m列和n行。時間複雜度O(m+n),空間複雜度O(1)。
class Solution { public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int n=matrix.size(); if(n == 0) { return false; } int m=matrix[0].size(); int row=0,cloumn=m-1; while(row < n && cloumn >= 0) { if(matrix[row][cloumn] == target) { return true; } else if(matrix[row][cloumn] > target) { cloumn--; } else { row++; } } return false; } };
需要一個判斷陣列是否為空的操作