博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode------Set Matrix Zeroes
阅读量:6880 次
发布时间:2019-06-27

本文共 967 字,大约阅读时间需要 3 分钟。

标题: Set Matrix Zeroes
通过率: 31.3%
难度: 中等

Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.

Follow up:

Did you use extra space?

A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?

本题的特点就是怎么用最少的额外空间去处理本题,最弱的也就是用另外一个mn的数组,或者就是用两个一维数组去记录行列,
那么我想到的是不用任何额外的空间,方法如下:
用数组的第0行和第0列去记录需要置0的行列,也就是说,如果matrix[i][j]=0那么需要把matrix[i][0]=0,matrix[0][j]=0的操作,这样一个
m*n循环下来以后就把需要置0的行列进行的标记,!!!
注意,在上一步之前先要确定第一行和第一列原来是否就有0的存在,这一部非常重要,如果不记录的话直接从上一步走,那么最好的结果是整个矩阵都是0,
接着是置0操作,是从第一行第一列开始的!这一步也是非常关键,
最后,要做的就是对第0行第0列进行操作,前面已经记录过是否有0,
下面直接看代码:
1 public class Solution { 2     public void setZeroes(int[][] matrix) { 3         int m=matrix.length; 4         int n=matrix[0].length; 5         boolean falg=false,mb=false,nb=false; 6         7         for(int i=0;i

 

转载于:https://www.cnblogs.com/pkuYang/p/4281072.html

你可能感兴趣的文章
Linux Shell脚本系列之二
查看>>
设计模式--代理模式(Proxy Pattern)
查看>>
稀疏数组
查看>>
HTML5 标签 canvas
查看>>
react-router@4.0 使用方法和源码分析
查看>>
Flutter简介
查看>>
组织级敏捷转型的四个阶段
查看>>
「数据游戏」:使用 LSTM 模型预测三天后单股收盘价
查看>>
vuex持久化插件-解决浏览器刷新数据消失问题
查看>>
Vue-cli3 项目在安卓低版本系统和 IE 上白屏问题解决
查看>>
并发-7-同步容器和ConcurrentHashMap
查看>>
React安装:
查看>>
从0开始搭建微信小程序(前后端)的全过程
查看>>
小程序如何生成海报分享朋友圈
查看>>
检测后台错误
查看>>
微信小程序自定义组件
查看>>
Android Studio 和 Gradle 优化配置总结
查看>>
java8 stream实现列表去重,java8的stream 和lambda的使用实例
查看>>
iOS中通知的添加和移除
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis (一)服务的注册与发现(Eureka)...
查看>>