LeetCode第 277 场周赛
A
class Solution {
public:
int countElements(vector<int>& nums) {
int minn = 0x3f3f3f3f, maxx = 0xcfcfcfcf;
for (auto x : nums)
minn = min(minn, x), maxx = max(maxx, x);
int cnt = 0;
for (auto x : nums)
if (x > minn && x < maxx)
cnt ++;
return cnt;
}
};
B
class Solution {
public:
vector<int> rearrangeArray(vector<int>& nums) {
vector<int> a, b;
for (auto x : nums) {
if (x >= 0) a.push_back(x);
else b.push_back(x);
}
vector<int> ans;
for (int i = 0; i < a.size(); i ++ ) {
ans.push_back(a[i]);
ans.push_back(b[i]);
}
return ans;
}
};
C
class Solution {
public:
vector<int> findLonely(vector<int>& nums) {
map<int, int> Map;
for (auto x : nums)
Map[x] ++;
vector<int> ans;
for (auto x : nums)
if (Map[x] == 1 && !Map.count(x + 1) && !Map.count(x - 1))
ans.push_back(x);
return ans;
}
};
D
class Solution {
public:
int ans = 0;
int st[20];
int maximumGood(vector<vector<int>>& statements) {
int n = statements.size();
function<void(int)> dfs = [&] (int d) {
if (d == n) {
bool flag = 1;
int sum = 0;
for (int i = 0; i < n; i ++ ) {
for (int j = 0; j < n; j ++ ) {
if (statements[i][j] == 2) continue;
if (st[i] && statements[i][j] != st[j]) {
flag = false;
break;
}
}
if (!flag) break;
}
if (flag) {
for (int i = 0; i < n; i ++ )
if (st[i])
sum ++;
ans = max(ans, sum);
}
return ;
}
dfs(d + 1);
st[d] = 1;
dfs(d + 1);
st[d] = 0;
};
dfs(0);
return ans;
}
};