指数:[LeetCode] Leetcode 解决问题的指数 (C++/Java/Python/Sql)

Github: https://github.com/illuz/leetcode


036. Valid Sudoku (Easy)

链接

题目:https://leetcode.com/problems/valid-sudoku/

代码(github):https://github.com/illuz/leetcode

题意

推断一个数独是否有效。

有效的数独不强求有解。

分析

仅仅要同一行、列、块里没有同样数字即可了。

开个数组记录即可了。没什么难度。能够用二进制来表示。表位运算加速。

(注意是推断有效,不是有解,我刚開始给求解了,TLE 了好多次。

。)

代码

C++:

class Solution {
private:
int row[9], col[9], sqr[3][3];
bool check(int x, int y, int val) {
return !((row[x]>>val)&1) && !((col[y]>>val)&1) && !((sqr[x/3][y/3]>>val)&1);
}
void mark(int x, int y, int val) {
row[x] |= (1<<val);
col[y] |= (1<<val);
sqr[x/3][y/3] |= (1<<val);
}<pre name="code" class="java">// 求解 Sudoku
//	void unmark(int x, int y, int val) {
// row[x] -= (1<<val);
// col[y] -= (1<<val);
// sqr[x/3][y/3] -= (1<<val);
// }
// bool dfs(int pos, vector<vector<char> > &board) {
// // x = pos / 9, y = pos % 9
// if (pos == 81)
// return true;
// if (board[pos/9][pos%9] != '.') {
// return dfs(pos + 1, board);
// } else {
// for (int i = 0; i < 9; i++)
// if (check(pos/9, pos%9, i)) {
// mark(pos/9, pos%9, i);
// if (dfs(pos + 1, board))
// return true;
// unmark(pos/9, pos%9, i);
// }
// }
// return false;
// }
public:
bool isValidSudoku(vector<vector<char> > &board) {
memset(row, 0, sizeof(row));
memset(col, 0, sizeof(col));
memset(sqr, 0, sizeof(sqr));
for (int i = 0; i < board.size(); i++)
for (int j = 0; j < board[i].size(); j++)
if (board[i][j] != '.') {
if (!check(i, j, board[i][j] - '1'))
return false;
mark(i, j, board[i][j] - '1');
}
return true;
// return dfs(0, board);
}
};



版权声明:本文博主原创文章,博客,未经同意不得转载。

[LeetCode] 036. Valid Sudoku (Easy) (C++)的更多相关文章

  1. LeetCode 036 Valid Sudoku

    题目要求:Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudo ...

  2. Java for LeetCode 036 Valid Sudoku

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...

  3. 【leetcode】Valid Sudoku (easy)

    题目:就是判断已有的数字是否冲突无效,若无效返回flase 有效返回true 不要求sudo可解 用了char型的数字,并且空格用‘.'来表示的. 思路:只要分别判断横向 竖向 3*3小块中的数字是否 ...

  4. LeetCode:36. Valid Sudoku,数独是否有效

    LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ...

  5. 【LeetCode】036. Valid Sudoku

    题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...

  6. leetCode 36.Valid Sudoku(有效的数独) 解题思路和方法

    Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku bo ...

  7. LeetCode 36 Valid Sudoku

    Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ...

  8. 【leetcode】Valid Sudoku

    题目简述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...

  9. Java [leetcode 36]Valid Sudoku

    题目描述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...

随机推荐

  1. leetcode先刷_Remove Duplicates from Sorted List II

    删除重复节点列表中的.假设所有val如果仅仅是为了保持一个非常easy.应承担重复val节点被删除话.要保持pre节点.每当你想保存这pre问题节点,应该head节点可以被取出,好了,没问题边境控制. ...

  2. Firefox双击关闭标签

  3. Java Swing TextArea 滚动条和获得焦点

    JTextArea text=new JTextArea(); text.setLineWrap(true);//设置自己主动换行,之后则不须要设置水平滚动栏 JScrollPane scroll=n ...

  4. hdu 4308 Saving Princess claire_ BFS

    为了准备算法考试刷的,想明确一点即可,全部的传送门相当于一个点,当遇到一个传送门的时候,把全部的传送门都压入队列进行搜索 贴代码: #include <iostream> #include ...

  5. SDL 简单入门学习

    write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 概要 实际学习使用SDL创建窗体,并绘制图形. 前言 今天想要做一个简单的demo ...

  6. 关于.net MVC5+EF6 网站部署的问题

    创建mvc web application,采用code first 的方式,MVC5,EF6.0 整了一个网站.开发完之后.直接publish.就这样部署到服务器上了. 在使用过程中发现,网站打开的 ...

  7. quick-cocos2d-x endToLua 退出会卡住

    问题: 马上赚钱,退出会出现卡住,然后清理,死界面的情况,百思不得其解,昨天在做push的时候,突然发现.在android里面弹出一个退出对话框,点击确定退出,这时候调用endtolua时,有时也会切 ...

  8. 简单的dialog菜单

    本文介绍的是我自己做的一个简单的dialog菜单,可以直接植入到类中. 方法代码: /** 显示一个靠右上的dialog列表菜单*/private void showTopBarRightButton ...

  9. 自己主动机串标:Directed Acyclic Word Graph

    trie -- suffix tree -- suffix automa 有这么几个情况: 用户输入即时响应AJAX搜索框, 显示候选名单. 搜索引擎keyword统计数量. 后缀树(Suffix T ...

  10. 1002. 写这个号码 (20)(数学啊 ZJU_PAT)

    主题链接:http://pat.zju.edu.cn/contests/pat-b-practise/1002 读入一个自然数n,计算其各位数字之和.用汉语拼音写出和的每一位数字. 输入格式:每一个測 ...