Re: [閒聊] 每日leetcode已回收
※ 引述 《JIWP (神楽めあ的錢包)》 之銘言:
:
: 861. Score After Flipping Matrix
:
: 有一個m*n的matrix
:
: 每一列都代表一個二進位數
:
: 可以把任意行、列的元素反轉(0->1、1->0)
:
: 請問在進行反轉後,這個matrix總和最大為多少?
:
: 思路:
:
: 首先先把每個第一行為0的列反轉
:
: 接著再去計算每一行0、1的數量
:
: 如果0的數量>1的數量就翻轉
:
: 接著就二進位轉十進位就可以求出答案了
:
思路:
差不多 反正越左邊越大越優先
所以都從左開始弄
然後全部加起來
class Solution {
public:
void lr(vector<vector<int>>& grid,int n )
{
for(int i = 0 ; i < grid[0].size() ; i ++)
{
grid[n][i] ^= 1;
}
}
void td(vector<vector<int>>& grid,int m )
{
for(int i = 0 ; i < grid.size() ; i ++)
{
grid[i][m] ^= 1;
}
}
int matrixScore(vector<vector<int>>& grid)
{
int n = grid.size();
int m = grid[0].size();
for(int i = 0 ; i < n ; i ++)
{
if(grid[i][0] == 0)
{
lr(grid , i);
}
}
for(int i = 0 ; i < m ; i ++)
{
int now = 0;
for(int j = 0 ; j < n ; j ++)
{
now += grid[j][i];
}
if(now <= n/2)
{
td(grid , i);
}
}
int res = 0;
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < m ; j ++)
{
if(!grid[i][j])continue;
res += pow(2 , m - j - 1);
}
}
return res;
}
};
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.142.93 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715606490.A.181.html
→
05/13 21:21,
1年前
, 1F
05/13 21:21, 1F
→
05/13 21:22,
1年前
, 2F
05/13 21:22, 2F
→
05/13 21:23,
1年前
, 3F
05/13 21:23, 3F
→
05/13 21:23,
1年前
, 4F
05/13 21:23, 4F
→
05/13 21:24,
1年前
, 5F
05/13 21:24, 5F
→
05/13 21:28,
1年前
, 6F
05/13 21:28, 6F
→
05/13 21:29,
1年前
, 7F
05/13 21:29, 7F
推
05/13 21:29,
1年前
, 8F
05/13 21:29, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 212 之 1554 篇):