73. 矩阵置零 leetcode JAVA
题目:
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:
输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
输出:
[
[0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
进阶:
- 一个直接的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
 - 一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
 - 你能想出一个常数空间的解决方案吗?
 
思路:
空间复杂度 O(2) ,用两个布尔变量就可以解决。方法就是利用数组的首行和首列来记录 0 值。从数组下标的 A[1][1] 开始遍历,两个布尔值记录首行首列是否需要置0
 class Solution {
     public void setZeroes(int[][] matrix) {
         boolean rowFlag = false;
         //判断首行
         for (int i = 0; i < matrix[0].length; i++) {
             if (matrix[0][i] == 0) {
                 rowFlag = true;
                 break;
             }
         }
         boolean colFlag = false;
         for (int i = 0; i < matrix.length; i++) {
             if (matrix[i][0] == 0) {
                 colFlag = true;
                 break;
             }
         }
         for (int i = 1; i < matrix.length; i++) {
             for (int j = 1; j < matrix[0].length; j++) {
                 if (matrix[i][j] == 0){
                     matrix[i][0] = 0;
                     matrix[0][j] = 0;
                 }
             }
         }
         for (int i = 1; i < matrix[0].length; i++) {
             if (matrix[0][i] == 0) {
                 for (int j = 0; j < matrix.length; j++) {
                     matrix[j][i] = 0;
                 }
             }
         }
         for (int i = 1; i < matrix.length; i++) {
             if (matrix[i][0] == 0) {
                 for (int j = 0; j < matrix[0].length; j++) {
                     matrix[i][j] = 0;
                 }
             }
         }
         if (rowFlag){
             for (int i = 0; i < matrix[0].length; i++) {
                 matrix[0][i] = 0;
             }
         }
         if (colFlag){
             for (int i = 0; i < matrix.length; i++) {
                 matrix[i][0] = 0;
             }
         }
     }
 }
73. 矩阵置零 leetcode JAVA的更多相关文章
- Java实现 LeetCode 73 矩阵置零
		
73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ...
 - leetcode 73 矩阵置零 Python
		
矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1 ...
 - leetcode.矩阵.73矩阵置零-Java
		
1. 具体题目 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: 输出:[ [ [1,1,1], [1,0,1], [ ...
 - leetcode刷题-73矩阵置零
		
题目 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: ...
 - LeetCode 73. 矩阵置零(Set Matrix Zeroes)
		
题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1 ...
 - LeetCode:矩阵置零【73】
		
LeetCode:矩阵置零[73] 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], ...
 - 【python】Leetcode每日一题-矩阵置零
		
[python]Leetcode每日一题-矩阵置零 [题目描述] 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解 ...
 - leetcode[73] Set Matrix Zeroes 将矩阵置零
		
给定一个矩阵,把零值所在的行和列都置为零.例如: 1 2 3 1 3 1 1 1 操作之后变为 1 3 0 0 0 1 1 方法1: 赋值另存一个m*n的矩阵,在原矩阵为零的值相应置新的矩阵行和列为零 ...
 - Leetcode 矩阵置零
		
题目描述(中等难度) 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解决方案是使用 O(mn) 的额外空间,但这 ...
 
随机推荐
- 使用打印方法时,要先引用命名空间: Using System.Drawing.Pringing
			
使用打印方法时,要先引用命名空间: Using System.Drawing.Pringing PrintDocument类的重要属性和方法:属性:DocumentName 设置打印文档时要显示的文 ...
 - 6 MySQL--表--完整性约束
			
参考:https://www.cnblogs.com/alice-bj/p/8824693.html 完整性约束: http://www.cnblogs.com/linhaifeng/articles ...
 - maven的pom报plugins缺失的解决方法
			
maven的pom报plugins却是的解决方法. 引用 Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom: ...
 - Spring中的注解配置-注入bean
			
在使用Spring框架中@Autowired标签时默认情况下使用 @Autowired 注释进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个.当找不到一个匹配的 Bean ...
 - Shrio03 Authenticator、配置多个Realm、SecurityManager认证策略
			
1 Authenticator 简介 1.1 层次结构图 1.2 作用 职责是验证用户帐号,是ShiroAPI中身份验证核心的入口点:接口中声明的authenticate方法就是用来实现认证逻辑的. ...
 - IDEA07 快捷键统计插件之Key Promoter X
			
1 官方介绍 该插件会统计你鼠标操作的次数,然后在一个窗口中展示出来 https://plugins.jetbrains.com/plugin/9792-key-promoter-x 2 下载.安装. ...
 - Golang之实现(链表)
			
链表算法 package main import "fmt" type LinkNode struct { data interface{} next *LinkNode } ty ...
 - Ubuntu 17 Nginx 配置 laravel 运行环境
			
1 安装 nginx #aptitude install nginx #apatitude install php7.1-fpm 2 在 /etc/nginx/sites-available 建立 s ...
 - Java JarFile 解析
			
Java JarFile 解析 package com.github.binarylei; import java.io.*; import java.net.URL; import java.net ...
 - http://4526621.blog.51cto.com/4516621/1343369
			
http://4526621.blog.51cto.com/4516621/1343369