java實現 Set matrix zeros
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place.
如果矩陣中某一元素為零,則將其所在列與行置為零
package ustc.zyy.LeetCode; /** * admin zhang yin ye * email:[email protected] * 1.先確定第一行和第一列是否需要清零 * 2.掃描剩下的矩陣元素,如果遇到了0,就將對應的第一行和第一列上的元素賦值為0 * 3.根據第一行和第一列的資訊,已經可以講剩下的矩陣元素賦值為結果所需的值了 * 4.根據1中確定的狀態,處理第一行和第一列。 * */ public class SetMatrixZero { public void setZero(int[][] matrix) { boolean firstRowZero = false; boolean firstColumnZero = false; // 判斷第一列是不是有零 有的話 就標記 firstColumnZero for (int i = 0; i < matrix.length; i++) { if (matrix[i][0] == 0) { firstColumnZero = true; break; } } // 判斷第一列是不是有零 要是有的話 就標記firstRowZero for (int j = 0; j < matrix[0].length; j++) { if (matrix[0][j] == 0) { firstRowZero = true; break; } } // 掃描剩下的矩陣 要是遇到了0 就把對應的第一行或者第一列設定為o即可 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; } } } // 根據第一行和第一列的資訊 來判斷這一行或者這一列是不是可以設定為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; } } } // 檢查第一列的資訊 if (firstColumnZero) { for (int i = 0; i < matrix.length; i++) { matrix[i][0] = 0; } } // 檢查第一行資訊 if (firstRowZero) { for (int j = 0; j < matrix[0].length; j++) { matrix[0][j] = 0; } } } }
相關推薦
java實現 Set matrix zeros
Set matrix zeros Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 如果矩陣中某一元素為零,則將其所在列與行置為零 pa
[LintCode] Set Matrix Zeros
b- ems gin cor counter best which bool rect Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in plac
LeetCode-73-Set Matrix Zeros
給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。 示例 1: 輸入: [ [1,1,1], [1,0,1], [1,1,1] ] 輸出: [ [1,0,1], [0,0,0], [1,0
73. Set Matrix Zeros
題目: 解答: 提供了兩種解題思路: 第一種,使用兩個陣列,分別標記每一行、每一列是否有0的存在,然後再去更新二維陣列。 第二種,使用兩個變數brow,bcol分別標記第0行,第0列是否存在0,然後使用每一行、每一列的第一個單元儲存是否該行、該列存在0. 程式
【LeetCode-面試算法經典-Java實現】【054-Spiral Matrix(螺旋矩陣)】
[] -a order detail tty util lis title comment 【054-Spiral Matrix(螺旋矩陣)】 【LeetCode-面試算法經典-Java實現】【全部題目文件夾索引】 原題 Given a
【LeetCode-面試算法經典-Java實現】【059-Spiral Matrix II(螺旋矩陣II)】
mod 最大 http 計算 spiral tro parent 全部 matrix 【059-Spiral Matrix II(螺旋矩陣II)】 【LeetCode-面試算法經典-Java實現】【全部題目文件夾索引】 原題 Given
[LeetCode] 73. Set Matrix Zeroes Java
ger 是否 -s could ret ext hash blog span 題目: iven a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. c
leetcode-73- 矩陣置零(set matrix zeroes)-java
題目及測試 package pid073; /*矩陣置零 給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地演算法。 示例 1: 輸入: [ [1,1,1], [1,0,1], [1,1,1] ] 輸出: [ [1,0
資料結構之Java實現底層Set
Set也是一種重要資料結構,其特點為不允許出現重複元素,不保證集合中的元素順序,可以有元素為null但只允許出現一次。首先定義了一個Set介面,根據前面幾篇文章實現的連結串列和二分收索樹實現Set資料結構,下面是實現過程 Set介面 public interface Se
java中Set集合的遍歷及實現類比較分析
java中Set集合是一個不包含重複元素的Collection,首先我們先看看遍歷方法 package com.sort; import java.util.HashSet; import java.util.Iterator; import java.util.Set;
java 集合 —— Set 實現類之 HashSet
原始碼基於jdk 1.7.81 HashSet 簡介 HashSet 是一個元素不能重複的集合。 HashSet 中當新增的元素有重複時,新增失敗。 HashSet 是 Set 的一個實現類,而 Set 又繼承了Collection 方法,並且沒有新增多餘的方法。
Java實現Redis的集合(set)命令
下面測試redis的集合set的型別,註釋裡面的程式碼是linux中redis命令 package com.huadian.set; import com.huadian.redisUntil.JedisPoolUntil; import org.junit.Befo
計算任意一個圖生成樹的個數——Kirchhoff 的Matrix Tree 方法Java實現
計算任意一個圖的生成樹的個數,是Kirchhoff提出的理論,通常稱為Matrix Tree Theorem,原理很簡單:Let G be a graph with V(G)={v1,v2,...,vn},let A={aij}be the adjacentcy matri
純資料結構Java實現(5/11)(Set&Map)
純資料結構Java實現(5/11)(Set&Map) Set 和 Map 都是抽象或者高階資料結構,至於底層是採用樹還是雜湊則根據需要而定。 可以細想一下 TreeMap/HashMap, TreeSet/HashSet 的區別即可 只定義操作介面(操作一致),不管具體的實現,所以即便底層是 BST
JAVA實現EXCEL公式專題(四)——字符串函數
main 問題 int start boolean java ... ringbuf out substring 直接上代碼:/** * 項目名稱: * 文件說明: ExCEL公式類型:字符串公式 * 主要特點: * 版本:1.0 * 制作人:劉晨曦
溫故而知新(java實現)單例模式的七種寫法
反序 防止 代碼 工作 html 我想 變種 evel 才會 第一種(懶漢,線程不安全): Java代碼 public class Singleton { private static Singleton instance; private S
ID3算法Java實現
for 宋體 mar 輸出 信息增益 方法 span 信息熵 指標 ID3算法java實現 1 ID3算法概述 1.1 信息熵 熵是無序性(或不確定性)的度量指標。假如事件A的全概率劃分是(A1,A2,...,An)
java 實現打印當前月份的日歷
mod import static 不同的 cat cep content log boolean 實現當前日歷的打印,當前日期用*來表示。 關鍵得出這個月的第一天是星期幾。 基姆拉爾森計算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/4
java實現二叉樹的構建以及3種遍歷方法
輸出 for () 如果 順序 bintree 參考 oca gpl 轉載自http://ocaicai.iteye.com/blog/1047397 大二下學期學習數據結構的時候用C介紹過二叉樹,但是當時熱衷於java就沒有怎麽鳥二叉樹,但是對二叉樹的構建及遍歷一
java實現爬蟲功能
ack 訪問 base aid for tail tor obj 執行 /** * 爬取新聞信息,封裝成實體bean */public class GetNews { public List<News> getNews() { // 存儲新聞對象 List&