判斷乙個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。
數字1-9
在每一行只能出現一次。
數字1-9
在每一列只能出現一次。
數字1-9
在每乙個以粗實線分隔的3x3
宮內只能出現一次。
上圖是乙個部分填充的有效的數獨。
數獨部分空格內已填入了數字,空白格用'.'
表示。
思路:就是基本的數獨判斷規則,現在就是按照暴力法遍歷三大遍,在找更有效的方法再更新。
**如下:
class solution ; //用於檢查的陣列
for(int i=0;i<9;i++) //行檢查
}memset(check,0,sizeof(check));
}for(int j=0;j<9;j++) //列檢查
}memset(check,0,sizeof(check));
}for(int i=0;i<9;i+=3) //塊檢查
for(int j=0;j<9;j+=3)
{for(int k=i;k寫的太麻煩太複雜。
leetcode基礎演算法 陣列篇 移動零
給定乙個陣列nums,編寫乙個函式將所有0移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。思路 原地把所有零移到陣列最後面,保持非零元素次序不變。思路 假設乙個陣列有n個元素 ...
leetcode基礎演算法 陣列篇 兩數求和
leetcode第一題 兩數求和 給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 1.暴力解法 用兩遍...
leetcode 初級演算法 陣列
給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度2,並且原陣列 nums 的前兩個元素被修改為1,2...