Cracking The Coding Interview 1.7
2024-08-22 00:47:21
//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;
}
最新文章
- TCP/IP三次握手和HTTP过程
- CSRF token 无法被验证. ----Yii连接数据库后数据库错误日志报错
- canvas三角函数应用
- php的数据访问
- mac配置iterm2和ohmyzsh
- IOS开发经验分享
- 提高C++编译速度-------pimpl 模式&; 桥接模式(转)
- ionic 横向滚动 ion-scroll 进度条(步骤)// 根据后台数据控制当前默认滑动到的位置
- android studio视频教学
- Centos6.5-dnsmasq安装
- mac 下SonarQube 安装与使用
- v-charts简介
- vs2017 exe在Linux上运行
- 【Spark调优】:尽量避免使用shuffle类算子
- 【Eclipse】Eclipse上如何集成SVN插件
- loj10009 P1717 钓鱼
- MySql 插入数据返回数据的Id值
- Spring注解运行时抛出null
- L187 DKK2
- 【laravel54】报错:No supported encrypter found (加密类未找到)
热门文章
- python中列表和元组的操作(结尾格式化输出小福利)
- Spring Boot入门第四天:使用Thymeleaf模板引擎
- 单细胞数据高级分析之初步降维和聚类 | Dimensionality reduction | Clustering
- sgu 154
- Confluence 6 权限概述
- PHP const关键字
- centos7 --kubeadm安装
- PAT 1046 Shortest Distance
- 一、集合框架(关于ArrayList,LinkedList,HashSet,LinkedHashSet,TreeSet)
- PyCharm+Miniconda3安装配置教程