文章目录
- 题意
- 思路
- 代码
题意
题目链接
可以翻转任意列,求全是1和全是0的行,最多有多少行。
思路
对一行而言,能翻转成相同的(同为1,或者同为0),则相等。能反转成相反的,则巧好,全部相反。
代码
class Solution {
public:string exchange(const string &in){string tmp;for (auto &index:in)tmp += (index == '1' ? "0": "1");return tmp;}int maxEqualRowsAfterFlips(vector<vector<int>>& matrix) {map<string, int> visit;for (auto &s:matrix){string tmp = "";for (auto &index : s)tmp += index + '0';visit[tmp]++;}int ans = 1;for (auto &index:visit){auto tmp = exchange(index.first);ans = max(ans, index.second + (visit.count(tmp) > 0 ? visit[tmp] : 0));}return ans;}
};