给定一个 m x n 的矩阵,如果一个元素为 0 ,则将这个元素所在的行和列都置零。
你有没有使用额外的空间?
使用 O(mn) 的空间不是一个好的解决方案。
使用 O(m + n) 的空间有所改善,但仍不是最好的解决方案。
你能设计一个使用恒定空间的解决方案吗?
详见:https://leetcode.com/problems/set-matrix-zeroes/description/

Java实现:

class Solution {
public void setZeroes(int[][] matrix) {
int m=matrix.length;
int n=matrix[0].length;
boolean rowZero=false;
boolean colZero=false;
for(int j=0;j<n;++j){
if(matrix[0][j]==0){
rowZero=true;
}
}
for(int i=0;i<m;++i){
if(matrix[i][0]==0){
colZero=true;
}
}
for(int i=1;i<m;++i){
for(int j=1;j<n;++j){
if(matrix[i][j]==0){
matrix[i][0]=0;
matrix[0][j]=0;
}
}
}
for(int i=1;i<m;++i){
for(int j=1;j<n;++j){
if(matrix[i][0]==0||matrix[0][j]==0){
matrix[i][j]=0;
}
}
}
if(rowZero){
for(int j=0;j<n;++j){
matrix[0][j]=0;
}
}
if(colZero){
for(int i=0;i<m;++i){
matrix[i][0]=0;
}
}
}
}

参考:https://www.cnblogs.com/grandyang/p/4341590.html

最新文章

  1. windows下安装php5.5的redis扩展
  2. 在iframe中获取本iframe DOM引用
  3. 【caffe】loss function、cost function和error
  4. Nginx配置(日志服务器中关于日志的产生)
  5. 【转】Struts1.x系列教程(6):Bean标签库
  6. JAVA-- M选N的组合算法
  7. Self和Super的用法
  8. 转 git使用命令, 特别:git checkout -b a 与 git branch a区别
  9. PAT1015. Reversible Primes
  10. asp.net中分页与存储过程的一些总结
  11. Intellij 导入play framework 项目
  12. 实现android支持多线程断点续传下载器功能
  13. (转)ASP.net的url重写
  14. poj 2031 Building a Space Station【最小生成树prime】【模板题】
  15. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统
  16. SSM+Maven+MySQL实现简易的挂机修仙页游
  17. [IOI2007] sails 船帆
  18. 被sleep开了个小玩笑
  19. 【云服务器部署】---Linux下安装nginx
  20. gitlab runner安装与使用

热门文章

  1. listen 76
  2. nginx的fastcgi_param参数详解
  3. 文章预告的自我挖坑系列——D3.js 系列之星光闪烁
  4. ACM学习历程——HDU4814 Golden Radio Base(数学递推) (12年成都区域赛)
  5. ACM学习历程—ZOJ3471 Most Powerful(dp &amp;&amp; 状态压缩 &amp;&amp; 记忆化搜索 &amp;&amp; 位运算)
  6. C++ STL std::wstring_convert处理UTF8
  7. mac下nginx的安装
  8. 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法
  9. cocos2dx unzip、createDir
  10. 排名Top 16的Java实用类库