- 首先我要在纸上,非常非常聪明且迅速且机灵
- 给出几个用例,找出边界用例和特殊用例,确定特判条件;在编码前考虑到所有的条件
- 给出函数头
- 暴力解,简述,优化。
- 给出能够想到的最优价
- 伪代码,同时结合用例
- 真实代码
Set Matrix Zeroes
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
// Set Matrix Zeroes
// Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
void set_zero(vector<vector<int> > &m)
{
if(m.size()==0) return;
vector<int> rt, ct;
for(int i=0; i<m.size(); i++)
{
for(int j=0; j<m[0].size(); j++)
{
if(m[i][j]==0)
{
rt.push_back(i);
ct.push_back(j);
}
}
}
for(int i=0; i<rt.size(); i++)
{
for(int j=0; j<m[0].size(); i++)
{
m[rt[i]][j]=0;
}
}
for(int i=0; i<ct.size(); i++)
{
for(int j=0; j<m.size(); i++)
{
m[j][ct[i]]=0;
}
}
}