星空网 > 软件开发 > Java

LintCode389.判断数独是否合法

LintCode简单题:判断数独是否合法

问题描述:

请判定一个数独是否有效。

该数独可能只填充了部分数字,其中缺少的数字用 . 表示。

注意事项:

一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。

样例:

下列就是一个合法数独的样例。

LintCode389.判断数独是否合法


 

分析:关于如何判断数独有效其实很简单,玩过的都知道,数独的每一行,每一列,每一个3*3的矩阵中不能出现重复的数字而且必须是1-9。那么Java代码是怎么完成的呢?

 

class Solution {  /**   * @param board: the board    @return: wether the Sudoku is valid   */  private Set<Character> set = new HashSet<Character>();    public boolean isValidSudoku(char[][] board) {        //row    for (int i = 0; i < 9; i++) {      for(int j = 0; j < 9; j++) {        if(!check(board[i][j])) return false;       }      set.clear();    }    //column    for (int i = 0; i < 9; i++) {      for(int j = 0; j < 9; j++) {        if(!check(board[j][i])) return false;       }      set.clear();    }    //sub matrix    for (int i = 0; i < 9; i++) {      for(int j = 0; j < 9; j++) {        if(!check(board[i/3*3 + j/3][i%3*3 + j%3])) return false; //这一行关于矩阵的处理是最亮的部分      }      set.clear();    }    return true;  }  public boolean check(char c) {    if(c == '.') {      return true;    } else if(c >= '1' && c <= '9') {      if (set.contains(c)) {        return false;      } else {        set.add(c);        return true;      }    } else {      return false;    }  }};

 




原标题:LintCode389.判断数独是否合法

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

单量上升还是ACOS飙升?亚马逊Prime2.0正在进行中!:https://www.ikjzd.com/articles/1580391417818456065
生产型出口企业转型为外贸企业,要注意这个问题!:https://www.ikjzd.com/articles/1580391581414023170
亚马逊广告活动又添新指标——“new-to-brand”!你注意了吗?:https://www.ikjzd.com/articles/15804
最新!英国VAT政策有变,所有卖家强制执行!:https://www.ikjzd.com/articles/1580400377665495042
紧急!亚马逊要求上传德国WEEE注册号!:https://www.ikjzd.com/articles/1580403007654420481
从数亿营收到亏损退市!这个亚马逊家居大卖能否华丽转身?:https://www.ikjzd.com/articles/1580406617054339073
在资本市场“凉凉”的消费品牌,在海外活得怎么样了?:https://www.kjdsnews.com/a/1842184.html
社媒红人推广人员必备的免费工具推荐:https://www.kjdsnews.com/a/1842185.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流