python CPP速解MaxPooling Leetcode 2373 Largest Local Values in a Matrix
算maxPooling stride=1就一般矩陣計算而已,找出子矩陣的極大,可以只使用額外空間O(1)就得解。C++解請進。
Calculating maxPooling stride=1 is just a general matrix calculation. To find the maximum of the submatrix, you can solve it using only extra space O(1).
#pragma GCC optimize("O3", "unroll-loops")
class Solution {
public:
vector<vector<int>> largestLocal(vector<vector<int>>& grid) {
const int n=grid.size();
for(int i=1; i<n-1; i++){
for(int j=1; j< n-1; j++){
for(int r=i-1; r<=i+1; r++)
for( int c=j-1; c<=j+1; c++)
grid[i-1][j-1]=max(grid[i-1][j-1], grid[r][c]);
}
grid[i-1].resize(n-2);
}
grid.resize(n-2);
return grid;
}
};
沒有留言:
張貼留言