时间:2020-10-11 11:51:59
第一次参加周赛,把做出来的两题写下来…
第一题本质上是考查栈,
class Solution {
public:
int maxDepth(string s) {
stack<char> st;
int res = 0;
for (auto &c : s) {
if (c == '(') {
st.push(c);
res = max(res, (int)st.size());
} else if (c == ')') {
st.pop();
}
}
return res;
}
};
第二题看似考查图,但是不需要用图的算法解。
class Solution {
public:
int maximalNetworkRank(int n, vector<vector<int>>& roads) {
vector<vector<int>> cities(n, vector<int>(n, 0));
vector<vector<int>> edges(n);
for (auto &road : roads) {
int a = road[0], b = road[1];
cities[a][b] = 1;
cities[b][a] = 1;
edges[a].push_back(b);
edges[b].push_back(a);
}
int res = 0;
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
res = max(res, (int)edges[i].size() + (int)edges[j].size() - cities[i][j]);
}
}
return res;
}
};