Skip to content

Commit b846edb

Browse files
committed
Add files.
1 parent 51cf59e commit b846edb

28 files changed

Lines changed: 4397 additions & 15 deletions
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# LeetCode 36.有效的数独\n",
8+
"判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。\n",
9+
"\n",
10+
"- 数字 1-9 在每一行只能出现一次。\n",
11+
"- 数字 1-9 在每一列只能出现一次。\n",
12+
"- 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。\n",
13+
"\n",
14+
"![](https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Sudoku-by-L2G-20050714.svg/250px-Sudoku-by-L2G-20050714.svg.png)\n",
15+
"\n",
16+
"## 一次迭代即可进行判断\n",
17+
"\n",
18+
"### 1.首先要解决怎么判断子数独的序号\n",
19+
"\n",
20+
"如图所示,为9个子数独的标号,可以根据行和列进行确定:\n",
21+
"\n",
22+
"\n",
23+
"<img src=\"https://raw.githubusercontent.com/hostimg/img/gh-pages/s/20190819223351.png\" width=300px/>\n",
24+
"\n",
25+
"`box = (row // 3) * 3 + columns // 3`\n",
26+
"\n",
27+
"其中 // 取整除 - 返回商的整数部分(向下取整)\n",
28+
"\n",
29+
"### 2.分别创建集合set()用来判断行、列、子数独中是否已经出现\n",
30+
"\n",
31+
"### 3.程序如下"
32+
]
33+
},
34+
{
35+
"cell_type": "code",
36+
"execution_count": 13,
37+
"metadata": {},
38+
"outputs": [],
39+
"source": [
40+
"class Solution(object):\n",
41+
" def isValidSudoku(self,board):\n",
42+
" \"\"\"\n",
43+
" :type board:List[List[str]]\n",
44+
" :rtype:bool\n",
45+
" \"\"\"\n",
46+
" digits = [str(i) for i in range(1,10)] #判断1-9以外的数\n",
47+
" rows = [set() for _ in range(9)] #分别保存9行出现的数\n",
48+
" cols = [set() for _ in range(9)] #分别保存9列出现的数\n",
49+
" boxes = [set() for _ in range(9)] #分别保存9个方格出现的数\n",
50+
" \n",
51+
" for r in range(9):\n",
52+
" for c in range(9):\n",
53+
" digit = board[r][c]\n",
54+
" if digit == '.':\n",
55+
" continue\n",
56+
" if digit not in digits: #出现1-9以外的数\n",
57+
" return False\n",
58+
" box = (r // 3) * 3 + c // 3 #计算子数独序号\n",
59+
" if digit in rows[r] or digit in cols[c] or digit in boxes[box]:\n",
60+
" #如果已经出现过,则输出False\n",
61+
" return False\n",
62+
" # 否则,在各个set()中添加这个数字\n",
63+
" rows[r].add(digit)\n",
64+
" rows[c].add(digit)\n",
65+
" boxes[box].add(digit)\n",
66+
" return True"
67+
]
68+
},
69+
{
70+
"cell_type": "markdown",
71+
"metadata": {},
72+
"source": [
73+
"**测试1:**"
74+
]
75+
},
76+
{
77+
"cell_type": "code",
78+
"execution_count": 15,
79+
"metadata": {},
80+
"outputs": [
81+
{
82+
"data": {
83+
"text/plain": [
84+
"True"
85+
]
86+
},
87+
"execution_count": 15,
88+
"metadata": {},
89+
"output_type": "execute_result"
90+
}
91+
],
92+
"source": [
93+
"board = [\n",
94+
" [\"5\",\"3\",\".\",\".\",\"7\",\".\",\".\",\".\",\".\"],\n",
95+
" [\"6\",\".\",\".\",\"1\",\"9\",\"5\",\".\",\".\",\".\"],\n",
96+
" [\".\",\"9\",\"8\",\".\",\".\",\".\",\".\",\"6\",\".\"],\n",
97+
" [\"8\",\".\",\".\",\".\",\"6\",\".\",\".\",\".\",\"3\"],\n",
98+
" [\"4\",\".\",\".\",\"8\",\".\",\"3\",\".\",\".\",\"1\"],\n",
99+
" [\"7\",\".\",\".\",\".\",\"2\",\".\",\".\",\".\",\"6\"],\n",
100+
" [\".\",\"6\",\".\",\".\",\".\",\".\",\"2\",\"8\",\".\"],\n",
101+
" [\".\",\".\",\".\",\"4\",\"1\",\"9\",\".\",\".\",\"5\"],\n",
102+
" [\".\",\".\",\".\",\".\",\"8\",\".\",\".\",\"7\",\"9\"]\n",
103+
"]\n",
104+
"s = Solution()\n",
105+
"s.isValidSudoku(board)"
106+
]
107+
},
108+
{
109+
"cell_type": "markdown",
110+
"metadata": {},
111+
"source": [
112+
"**测试2:**"
113+
]
114+
},
115+
{
116+
"cell_type": "code",
117+
"execution_count": 18,
118+
"metadata": {},
119+
"outputs": [
120+
{
121+
"data": {
122+
"text/plain": [
123+
"False"
124+
]
125+
},
126+
"execution_count": 18,
127+
"metadata": {},
128+
"output_type": "execute_result"
129+
}
130+
],
131+
"source": [
132+
"board = [\n",
133+
" [\"8\",\"3\",\".\",\".\",\"7\",\".\",\".\",\".\",\".\"],\n",
134+
" [\"6\",\".\",\".\",\"1\",\"9\",\"5\",\".\",\".\",\".\"],\n",
135+
" [\".\",\"9\",\"8\",\".\",\".\",\".\",\".\",\"6\",\".\"],\n",
136+
" [\"8\",\".\",\".\",\".\",\"6\",\".\",\".\",\".\",\"3\"],\n",
137+
" [\"4\",\".\",\".\",\"8\",\".\",\"3\",\".\",\".\",\"1\"],\n",
138+
" [\"7\",\".\",\".\",\".\",\"2\",\".\",\".\",\".\",\"6\"],\n",
139+
" [\".\",\"6\",\".\",\".\",\".\",\".\",\"2\",\"8\",\".\"],\n",
140+
" [\".\",\".\",\".\",\"4\",\"1\",\"9\",\".\",\".\",\"5\"],\n",
141+
" [\".\",\".\",\".\",\".\",\"8\",\".\",\".\",\"7\",\"9\"]\n",
142+
"]\n",
143+
"\n",
144+
"s = Solution()\n",
145+
"s.isValidSudoku(board)"
146+
]
147+
}
148+
],
149+
"metadata": {
150+
"kernelspec": {
151+
"display_name": "tf36",
152+
"language": "python",
153+
"name": "tf36"
154+
},
155+
"language_info": {
156+
"codemirror_mode": {
157+
"name": "ipython",
158+
"version": 3
159+
},
160+
"file_extension": ".py",
161+
"mimetype": "text/x-python",
162+
"name": "python",
163+
"nbconvert_exporter": "python",
164+
"pygments_lexer": "ipython3",
165+
"version": "3.6.8"
166+
}
167+
},
168+
"nbformat": 4,
169+
"nbformat_minor": 2
170+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# LeetCode0048旋转图像-Rotate-Image\n",
8+
"\n",
9+
"https://leetcode.com/problems/rotate-image/\n",
10+
"\n",
11+
"https://leetcode-cn.com/problems/rotate-image/\n",
12+
"\n"
13+
]
14+
}
15+
],
16+
"metadata": {
17+
"kernelspec": {
18+
"display_name": "tf36",
19+
"language": "python",
20+
"name": "tf36"
21+
},
22+
"language_info": {
23+
"codemirror_mode": {
24+
"name": "ipython",
25+
"version": 3
26+
},
27+
"file_extension": ".py",
28+
"mimetype": "text/x-python",
29+
"name": "python",
30+
"nbconvert_exporter": "python",
31+
"pygments_lexer": "ipython3",
32+
"version": "3.6.8"
33+
}
34+
},
35+
"nbformat": 4,
36+
"nbformat_minor": 2
37+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": []
9+
}
10+
],
11+
"metadata": {
12+
"kernelspec": {
13+
"display_name": "tf36",
14+
"language": "python",
15+
"name": "tf36"
16+
},
17+
"language_info": {
18+
"codemirror_mode": {
19+
"name": "ipython",
20+
"version": 3
21+
},
22+
"file_extension": ".py",
23+
"mimetype": "text/x-python",
24+
"name": "python",
25+
"nbconvert_exporter": "python",
26+
"pygments_lexer": "ipython3",
27+
"version": "3.6.8"
28+
}
29+
},
30+
"nbformat": 4,
31+
"nbformat_minor": 2
32+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": []
9+
}
10+
],
11+
"metadata": {
12+
"kernelspec": {
13+
"display_name": "tf36",
14+
"language": "python",
15+
"name": "tf36"
16+
},
17+
"language_info": {
18+
"codemirror_mode": {
19+
"name": "ipython",
20+
"version": 3
21+
},
22+
"file_extension": ".py",
23+
"mimetype": "text/x-python",
24+
"name": "python",
25+
"nbconvert_exporter": "python",
26+
"pygments_lexer": "ipython3",
27+
"version": "3.6.8"
28+
}
29+
},
30+
"nbformat": 4,
31+
"nbformat_minor": 2
32+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": []
9+
}
10+
],
11+
"metadata": {
12+
"kernelspec": {
13+
"display_name": "tf36",
14+
"language": "python",
15+
"name": "tf36"
16+
},
17+
"language_info": {
18+
"codemirror_mode": {
19+
"name": "ipython",
20+
"version": 3
21+
},
22+
"file_extension": ".py",
23+
"mimetype": "text/x-python",
24+
"name": "python",
25+
"nbconvert_exporter": "python",
26+
"pygments_lexer": "ipython3",
27+
"version": "3.6.8"
28+
}
29+
},
30+
"nbformat": 4,
31+
"nbformat_minor": 2
32+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"metadata": {},
7+
"outputs": [],
8+
"source": []
9+
}
10+
],
11+
"metadata": {
12+
"kernelspec": {
13+
"display_name": "tf36",
14+
"language": "python",
15+
"name": "tf36"
16+
},
17+
"language_info": {
18+
"codemirror_mode": {
19+
"name": "ipython",
20+
"version": 3
21+
},
22+
"file_extension": ".py",
23+
"mimetype": "text/x-python",
24+
"name": "python",
25+
"nbconvert_exporter": "python",
26+
"pygments_lexer": "ipython3",
27+
"version": "3.6.8"
28+
}
29+
},
30+
"nbformat": 4,
31+
"nbformat_minor": 2
32+
}

0 commit comments

Comments
 (0)