[Codewars]-Sudoku Solution Validator
2018-03-23 15:23
10 查看
[Codewars]-Sudoku Solution Validator
题目:
检查9*9数独矩阵是否有效。根据三个条件判定:
1.每行数字不重复(1~9)
2.每列数字不重复(1~9)
3.9个3*3的九宫格数字不重复(1~9)
思路:
直接解就行解答:
function validSolution(board){ //TODO var len = board.length ; var fanArr = fan(board)//矩阵翻转 //判定3*3九宫格 for(var x = 0 ; x <=6 ; x +=3){ for(var y = 0 ; y <= 6 ; y += 3){ var temp = 0 for(var a = 0 ; a<=2 ; a ++){ for(var b = 0 ; b <= 2 ; b++){ temp +=board[x+a][y+b] } } if( temp !=45 ){ return false break } } } for( let i = 0 ; i < len ; i ++){ //判定横向 if( isRepeat(board[i]) ){ return false } //判定纵向 if( isRepeat(fanArr[i])){ return false } } return true function isRepeat(arr){ arr = arr.sort(function(a,b){return a-b}) for(var i = arr.length-1 ; i >= 1 ; i --){ if(arr[i]==arr[i-1]){ return true } } return false } function fan(arr){ var col = arr.length ; var cow = arr[0].length; var b = []; for(var i = 0 ; i < col ; i ++){ b[i] = [] for(var j = 0 ; j < cow ; j ++){ b[i][j] = arr[j][i] } } return b }
补充下大神的做法
思路很清晰,横向纵向求和,小九宫格求和function validSolution(board){ var sumh = [0,0,0,0,0,0,0,0,0]; var sumv = [0,0,0,0,0,0,0,0,0]; osums = [[0,0,0],[0,0,0],[0,0,0]]; for (var i=0;i<9;i++){ for (var j=0;j<9;j++){ sumh[i] += board[i][j]; sumv[j] += board[i][j]; osums[Math.floor(i/3)][Math.floor(j/3)] += board[i][j]; } } for (var i=0;i<3;i++) if (!osums[i].every(equals45)) return false; return (sumh.every(equals45) && sumv.every(equals45)); }
相关文章推荐
- 【Codewars】Sudoku Solution Validator 实现数独验证器
- Codewars 打怪日记 5星级kyu 数独游戏 我是否完成了数组 Did I Finish my Sudoku? 看小菜和大神循环的巧妙运用
- poj 2676 Sudoku(dfs填数)
- POJ 2676 Sudoku(数独)__深搜
- Sudoku poj2676 (dfs)
- HDU1426 - Sudoku Killer - dfs+思维
- Sudoku(数独缩小版(4*4))
- [codewars]4.找到数组中唯一奇偶异常元素
- POJ2676-搜索-Sudoku
- Sudoku
- 好玩的线上检测代码工具-codewars(2)
- 软工实践作业2:个人项目实战之Sudoku
- LeetCode37 - Sudoku Solver
- [Haskell] CodeWars|Printer Errors
- Rust: codewars的DNA to RNA Conversion
- codewars--两张表连接查询的操作
- LeetCode--valid-sudoku
- 数组排序、取字符串中的数字(codewars练习)
- Sudoku Java ME 游戏(MIDP2.0, RAZR V3测试)
- Building a WPF Sudoku Game: Part 5 - The AI Battle: Loading and Comparing AI Plug-ins (zz)