题目来源于知识星球—英雄算法联盟,六月算法集训专题
目录
前言
跟随英雄算法联盟博主—英雄哪里出来,每天完成相应的算法练习,一个月后,必定会有所成长!
一、面试题01.08.零矩阵(中等)
1.题目描述
2.解题思路
如果矩阵中某个元素为0,则将它所在的行和列所有元素都置为0。
3.代码演示(C++)
class Solution
{
public:
void setZeroes(vector<vector<int>>& matrix)
{
int m = matrix.size();
int n = matrix[0].size();
vector<int> row(m), col(n);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (!matrix[i][j])
{
row[i] = col[j] = true;
}
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (row[i] || col[j])
{
matrix[i][j] = 0;
}
}
}
}
};
4.题目链接
二、73.矩阵置零(中等)
1.题目描述
2.解题思路
双层循环遍历矩阵即可,存在0,则将它所在的行和列所有元素都设置为0.
3.代码演示(C++)
class Solution
{
public:
void setZeroes(vector<vector<int>>& matrix)
{
vector<vector<int>> tmp(matrix);
int n = matrix.size();
int m = matrix[0].size();
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < m; ++j)
{
if(tmp[i][j] == 0)
{
for(int k = 0; k < n; ++k)
{
matrix[k][j] = 0;
}
for(int k = 0; k < m; ++k)
{
matrix[i][k] = 0;
}
}
}
}
}
};
4.题目链接
三、1727.重新排列后的最大子矩阵(中等)
1.题目描述
2.解题思路
这道题有点水平,抽时间看看!
3.代码演示(C++)
4.题目链接
四、1034.边界着色(中等)
1.题目描述
2.解题思路
后会有期!
3.代码演示(C++)
4.题目链接
总结
每天跟随英雄哥学习相关的算法,一个月会收获很多,如果你想了解更多关于知识星球的内容,欢迎联系我!