标签:display inline let ott 千万 计算 line mamicode length
上图是一个部分填充的有效的数独。
数独部分空格内已填入了数字,空白格用 ‘.‘ 表示。
说明var isValidSudoku = function (board) { let hash1 = new Array(9), // 3个hash表分别对应每一行 每一列 每一格 hash2 = new Array(9), // 千万别用fill({}) fill出来的是同一个对象~~~~ hash3 = new Array(9), tmp, i3; // tmp当前遍历项的值 i3 是hash3对应的第几个方格 for (let i = 0; i < board.length; i++) { hash1[i] = {}; // i表示每一行 每次进入新的一行 hash1[i] 赋值为空对象 for (let j = 0; j < board.length; j++) { if (i === 0) hash2[j] = {}; // 当 i = 0 时 hash2 每一列都没有赋值 为每一列赋值空对象 tmp = board[i][j]; if (tmp === ‘.‘) continue; // 空则继续 if (!hash1[i][tmp]) hash1[i][tmp] = 1; // 如果第i行还没出现过这个值 赋值1 else return false; // 如果出现过 说明一行出现两个相同值 return false if (!hash2[j][tmp]) hash2[j][tmp] = 1; // 如果第j列没出现过这个值 赋值1 else return false; // 如果出现过 说明一列出现两个相同值 return false i3 = Math.floor(i / 3) * 3 + Math.floor(j / 3); // i3计算当前i j对应的是第几个小方格 if (!hash3[i3]) hash3[i3] = {}; if (!hash3[i3][tmp]) hash3[i3][tmp] = 1; // 如果当前方格没有出现过该值 赋值1 else return false; // 同理 } } return true; // 遍历结束后都没触发过return false 说明是有效的数独 };
标签:display inline let ott 千万 计算 line mamicode length
原文地址:https://www.cnblogs.com/lanpang9661/p/13150804.html