leetcode1284轉換清零矩陣的最少次數

2021-10-25 04:23:41 字數 526 閱讀 8880

給你乙個 m x n 的二進位制矩陣 mat。

每一步,你可以選擇乙個單元格並將它反轉(反轉表示 0 變 1 ,1 變 0 )。如果存在和它相鄰的單元格,那麼這些相鄰的單元格也會被反轉。(注:相鄰的兩個單元格共享同一條邊。)

請你返回將矩陣 mat 轉化為全零矩陣的最少反轉次數,如果無法轉化為全零矩陣,請返回 -1 。

二進位制矩陣的每乙個格仔要麼是 0 要麼是 1 。

全零矩陣是所有格仔都為 0 的矩陣。

輸入:mat = [[0,0],[0,1]]

輸出:3

解釋:乙個可能的解是反轉 (1, 0),然後 (0, 1) ,最後是 (1, 1) 。

從終點開始,利用bfs找到起點

用佇列實現,佇列存放矩陣即int

hashset存放該矩陣是否在之前出現過,set存放string,是將矩陣轉換成字串,不能直接存放int陣列。

class solution 

}public int minflips(int mat)

清北集訓Day3T1 轉換

這題可能是我與正解裡的最近的一次了,可以還是sb的把正解叉了。正解其實比較顯然 因為 f x 只有81個取值,所以我們可以列舉 f x 然後計算 x 再判斷 x 是否可以轉化為 f x 剛開始以為乙個 f x 會對應很多 x 所以這麼列舉是錯的。但實際上我們在列舉 f x 的時候並不關注 f x 與...

20141011 轉換習題2

習題要求 依次鍵盤輸入每個人的名字,加年齡,之後彙總列印出來,之後求年齡和列印出來。需要將名字和年齡分別定義賦值。名字定義為引用型,string m1 console.readline 年齡則需要定義為值型 double n1 convert.todouble console.readline 因為...

20141010 轉換習題1

練習一 要求 在控制台中人工輸入任意十個數值,最後求十個數值的合。首先要將輸入的數值定義 1 整型定義 以int為例 int a convert.toint console.readline 2 浮點定義以double為例 double a convert.todouble console.read...