1072.
bitset 翻一翻
因為要固定size
所以做了個mask
讓超過n的不變
我還是很不習慣直接對數字操作
class Solution {
public:
int maxEqualRowsAfterFlips(vector<vector<int>>& mat) {
unordered_map<bitset<301>, int> mp;
int n = mat[0].size();
string m = string(301 - n, '1') + string(n, '0');
bitset<301> mask(m);
cout << "M: " << mask << '\n';
for(auto& row: mat){
string bit_s(row.begin(), row.end());
for(char& c: bit_s){
c += '0';
}
bitset<301> bs(bit_s);
mp[bs | mask]++;
bs.flip();
mp[bs | mask]++;
}
int mx = 1;
for(auto& [bs, cnt]: mp){
mx = max(mx, cnt);
}
return mx;
}
};