【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】
来源:互联网 发布:mac怎么保存gif图片 编辑:程序博客网 时间:2024/06/01 07:32
【070-Set Matrix Zeroes(矩阵置零)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
题目大意
给定一个m*n的矩阵,如果某个位置是0。将对应的行和列设置为0。
解题思路
先对矩阵进行扫描,标记要进行置0的行和列,对要进行置0的行在第0列上进行标记,对置0的列在第0行上进行标标记。同时还要两变量记录第0行和第0列是否要置0,最后进行置0操作。
代码实现
算法实现类
public class Solution { public void setZeroes(int[][] matrix) { // 第一行被设置的标志 boolean rowFlag = false; // 第一列被设置的标志 boolean colFlag = false; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if (matrix[i][j] == 0) { // 标记第一行要被设置 if (i == 0) { rowFlag = true; } // 标记第一列要被设置 if (j == 0){ colFlag = true; } // 在行列在标记要设置为0的行和列 matrix[0][j] = 0; matrix[i][0] = 0; } } } // 对第二行第二列开始的元素设置0 for (int i = 1; i < matrix.length; i++) { for (int j = 1; j < matrix[0].length; j++) { if (matrix[i][0] == 0 || matrix[0][j] == 0) { matrix[i][j] = 0; } } } // 设置第一行为0 if (rowFlag) { for (int j = 0; j < matrix[0].length; j++) { matrix[0][j] = 0; } } // 设置第一列为0 if (colFlag) { for (int i = 0; i < matrix.length; i++) { matrix[i][0] = 0; } } }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47371979】
2 2
- 【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】
- (每日算法)LeetCode--Set Matrix Zeroes (矩阵置零)
- leetcode Set Matrix Zeroes矩阵设置零
- Leetcode 73. Set Matrix Zeroes 矩阵置零 解题报告
- leetcode 73. Set Matrix Zeroes-矩阵置零|数组
- LeetCode-73. Set Matrix Zeroes (JAVA) 矩阵元素置0
- LeetCode-73 Set Matrix Zeroes(设置零矩阵)
- 【LeetCode-面试算法经典-Java实现】【054-Spiral Matrix(螺旋矩阵)】
- 【LeetCode-面试算法经典-Java实现】【074-Search a 2D Matrix(搜索二维矩阵)】
- 【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
- 162.Set Matrix Zeroes-矩阵归零(中等题)
- [Lintcode] Set Matrix Zeroes矩阵归零
- [Leetcode] Set Matrix Zeroes (Java)
- [LeetCode][Java] Set Matrix Zeroes
- Set Matrix Zeroes 把一个矩阵置为0 @LeetCode
- LeetCode | Set Matrix Zeroes(矩阵相应行列清零)
- LeetCode 73. Set Matrix Zeroes(矩阵清零)
- Set Matrix Zeroes 行列置零 常量空间(重)
- 首先,我们根据某广告平台的规定,在我们的AndroidManifest.xml
- Android Api Demos登顶之路(二十四)Translucent Activity
- C语言的逗号运算符
- C语言的循环语句
- 如果没有固定的公网IP
- 【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】
- Android Api Demos登顶之路(二十五)Wallpaper
- 【LeetCode-面试算法经典-Java实现】【105-Construct Binary Tree from Preorder and Inorder Traversal(构造二叉树)】
- 【LeetCode-面试算法经典-Java实现】【106-Construct Binary Tree from Inorder and Postorder Traversal(构造二叉树II)】
- Java构建FTP服务器
- 天地图、百度、高德、腾讯地图图片叠加层切片生成工具动态(2017.3.4 自定义切片水印)
- 如何用Java构建FTP服务器
- iOS Objective-C 身份证号码校验
- Java中使用Log4j记录日志