标题力扣数独题
python: 执行用时: 48 ms 内存消耗: 13.1 MB
class Solution(object):
def isValidSudoku(self, board):
for i in range(0, 9):
if there_is_same(board[i]):
return False
newlist = [board[0][i], board[1][i], board[2][i], board[3][i], board[4][i], board[5][i], board[6][i],
board[7][i], board[8][i]]
if there_is_same(newlist):
return False
taget_long = i * 3 % 9
taget_hight = i / 3 * 3
newlist = [board[taget_long][taget_hight], board[taget_long + 1][taget_hight],
board[taget_long + 2][taget_hight],
board[taget_long][taget_hight + 1], board[taget_long + 1][taget_hight + 1],
board[taget_long + 2][taget_hight + 1],
board[taget_long][taget_hight + 2], board[taget_long + 1][taget_hight + 2],
board[taget_long + 2][taget_hight + 2]]
if there_is_same(newlist):
return False
return True
def there_is_same(list_value):
for r in range(len(list_value) - 1):
if list_value[r] == ".":
continue
for c in range(r + 1, len(list_value)):
if list_value[r] == list_value[c]:
return True
return False
C#:执行用时: 120 ms 内存消耗: 27.5 MB
public class Solution {
public bool IsValidSudoku(char[][] board) {
for (int i = 0; i < 9; i++)
{
if (there_is_same(board[i]))
{
return false;
}
char[] charlist = new char[9] {board[0][i], board[1][i], board[2][i], board[3][i], board[4][i], board[5][i], board[6][i],
board[7][i], board[8][i]};
if (there_is_same(charlist))
{
return false;
}
int taget_long = i * 3 % 9;
int taget_hight = i / 3 * 3;
charlist = new char[9] {board[taget_long][taget_hight], board[taget_long + 1][taget_hight],
board[taget_long + 2][taget_hight],
board[taget_long][taget_hight + 1], board[taget_long + 1][taget_hight + 1],
board[taget_long + 2][taget_hight + 1],
board[taget_long][taget_hight + 2], board[taget_long + 1][taget_hight + 2],
board[taget_long + 2][taget_hight + 2]};
if (there_is_same(charlist))
{
return false;
}
}
return true;
}