第一题
这题就模拟即可,移动3*3大小的矩阵找出矩阵中最大值
class Solution {
public:
vector<vector<int>> largestLocal(vector<vector<int>>& a) {
vector<int>g;vector<vector<int>>b;int n=a.size();
for(int i=0;i<n-2;i++){
g.clear();
for(int j=0;j<n-2;j++)
{
int ans=0;
for(int k=0;k<=2;k++)
for(int l=0;l<=2;l++)
ans=max(ans,a[i+k][j+l]);
g.push_back(ans);
}
b.push_back(g);
}
return b;
}
};
第二题
这题先遍历数组,并返回每个数字所对应的下标和,最后再次遍历刚刚生成的数组返回最大值所对应的下标即可
class Solution {
public:
int edgeScore(vector<int>& edges) {
int n = edges.size();
vector<long long> f(n);
for (int i = 0; i < n; i++) f[edges[i]] += i;
int ans = 0;
for (int i = 1; i < n; i++) if (f[i] > f[ans]) ans = i;
return ans;
}
};