考虑时间复杂度,牺牲空间换取时间,只需要遍历二维数组一遍,同时完成行、列和小九宫格的判断。使用Set结合,难点在于每个小九宫格坐标如何进行计算。
九宫格坐标如下图所示
分析坐标,可知行号每3个 i 就会对应加3,每3个j对应加1。列号是每3个i就会重复,每3个j就会重复。
所以 行号 计算 (i / 3) * 3 + j / 3
列号计算 (i % 3)* 3 + j % 3
考虑时间复杂度,牺牲空间换取时间,只需要遍历二维数组一遍,同时完成行、列和小九宫格的判断。使用Set结合,难点在于每个小九宫格坐标如何进行计算。
九宫格坐标如下图所示
分析坐标,可知行号每3个 i 就会对应加3,每3个j对应加1。列号是每3个i就会重复,每3个j就会重复。
所以 行号 计算 (i / 3) * 3 + j / 3
列号计算 (i % 3)* 3 + j % 3