//Write an algorithm such that if an element in an MxN matrix is 0, its entire row and column is set to 0.
//
//这题原答案就是要两个buffer来记录出现0的位置。不知道有没可以不用buffer的方法。 #include <iostream>
using namespace std;
void setZero(int **matrix, int m, int n)
{
int *hang = new int[n];
int *lie = new int[m];
for (int i = 0; i< m; i++)
{
for (int j=0; j <n;j++)
{
if (matrix[i][j] == 0)
{
hang[j] = 1;
lie[i] = 1;
}
}
}
for (int i = 0; i<m; i++)
{
for (int j = 0; j<n; j++)
{
if (hang[j] ==1 || lie[i] ==1)
{
matrix[i][j]=0;
}
}
}
} void display(int **matrix, int size, int n)
{
for (int k = 0; k<size; k++)
for (int t = 0; t<n; t++)
{
cout<<matrix[k][t]<<" ";
if (t==n-1)
{
cout<<endl;
}
}
} int main()
{
int m = 4,n = 5;
int **p = new int *[m];
for (int i=0;i<m;i++)
{
p[i] = new int[n];
} for (int i =0;i<m;i++)
{
for (int j=0;j<n;j++)
{
p[i][j] = 2*i+j;
}
}
p[2][3] =0;
display(p,m,n);
cout<<endl;
setZero(p,m,n);
display(p,m,n);
return 0;
}

最新文章

  1. TCP/IP三次握手和HTTP过程
  2. CSRF token 无法被验证. ----Yii连接数据库后数据库错误日志报错
  3. canvas三角函数应用
  4. php的数据访问
  5. mac配置iterm2和ohmyzsh
  6. IOS开发经验分享
  7. 提高C++编译速度-------pimpl 模式&amp; 桥接模式(转)
  8. ionic 横向滚动 ion-scroll 进度条(步骤)// 根据后台数据控制当前默认滑动到的位置
  9. android studio视频教学
  10. Centos6.5-dnsmasq安装
  11. mac 下SonarQube 安装与使用
  12. v-charts简介
  13. vs2017 exe在Linux上运行
  14. 【Spark调优】:尽量避免使用shuffle类算子
  15. 【Eclipse】Eclipse上如何集成SVN插件
  16. loj10009 P1717 钓鱼
  17. MySql 插入数据返回数据的Id值
  18. Spring注解运行时抛出null
  19. L187 DKK2
  20. 【laravel54】报错:No supported encrypter found (加密类未找到)

热门文章

  1. python中列表和元组的操作(结尾格式化输出小福利)
  2. Spring Boot入门第四天:使用Thymeleaf模板引擎
  3. 单细胞数据高级分析之初步降维和聚类 | Dimensionality reduction | Clustering
  4. sgu 154
  5. Confluence 6 权限概述
  6. PHP const关键字
  7. centos7 --kubeadm安装
  8. PAT 1046 Shortest Distance
  9. 一、集合框架(关于ArrayList,LinkedList,HashSet,LinkedHashSet,TreeSet)
  10. PyCharm+Miniconda3安装配置教程