数独判定。leetcode36

标题力扣数独题

有效的数独

在这里插入图片描述
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;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值