883. 三维形体投影面积
行和列完全对称的,所以通过一次遍历得到每行最大值和每列最大值
时间复杂度: O ( n 2 ) O(n^2) O(n2)
// shiran
#include <bits/stdc++.h>
using namespace std;
#define rep(i, a, n) for (int i = a; i < n; i++)
#define per(i, n, a) for (int i = n - 1; i >= a; i--)
#define sz(x) (int)size(x)
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define pb push_back
typedef long long ll;
typedef pair<int, int> PII;
const int mod = 1000000007;
const int N = 110;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
// ios::sync_with_stdio(0);
// cin.tie(0);
class Solution
{
public:
int projectionArea(vector<vector<int>> &grid)
{
int res = 0, n = sz(grid);
rep(i, 0, n)
{
int rmax = 0, cmax = 0;
rep(j, 0, n)
{
if (grid[i][j])
res++;
rmax = max(rmax, grid[i][j]);
cmax = max(cmax, grid[j][i]);
}
res += rmax + cmax;
}
return res;
}
};