Skip to content

Commit 4a96974

Browse files
committed
feat: update python solutions to lc problems
1 parent 9581b48 commit 4a96974

File tree

33 files changed

+42
-48
lines changed

33 files changed

+42
-48
lines changed

solution/0400-0499/0490.The Maze/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class Solution:
103103
m, n = len(maze), len(maze[0])
104104
q = deque([start])
105105
rs, cs = start
106-
vis = set([(rs, cs)])
106+
vis = {(rs, cs)}
107107
while q:
108108
i, j = q.popleft()
109109
for a, b in [[0, -1], [0, 1], [-1, 0], [1, 0]]:

solution/0400-0499/0490.The Maze/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class Solution:
8787
m, n = len(maze), len(maze[0])
8888
q = deque([start])
8989
rs, cs = start
90-
vis = set([(rs, cs)])
90+
vis = {(rs, cs)}
9191
while q:
9292
i, j = q.popleft()
9393
for a, b in [[0, -1], [0, 1], [-1, 0], [1, 0]]:

solution/0400-0499/0490.The Maze/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def hasPath(
55
m, n = len(maze), len(maze[0])
66
q = deque([start])
77
rs, cs = start
8-
vis = set([(rs, cs)])
8+
vis = {(rs, cs)}
99
while q:
1010
i, j = q.popleft()
1111
for a, b in [[0, -1], [0, 1], [-1, 0], [1, 0]]:

solution/0700-0799/0773.Sliding Puzzle/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class Solution:
121121
end = "123450"
122122
if start == end:
123123
return 0
124-
vis = set([(start)])
124+
vis = {start}
125125
q = deque([(start)])
126126
ans = 0
127127
while q:

solution/0700-0799/0773.Sliding Puzzle/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ class Solution:
9898
end = "123450"
9999
if start == end:
100100
return 0
101-
vis = set([(start)])
101+
vis = {start}
102102
q = deque([(start)])
103103
ans = 0
104104
while q:

solution/0800-0899/0864.Shortest Path to Get All Keys/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class Solution:
8989
dirs = [-1, 0, 1, 0, -1]
9090
ans = 0
9191
mask = (1 << cnt) - 1
92-
vis = set([(start[0], start[1], 0)])
92+
vis = {(*start, 0)}
9393
while q:
9494
for _ in range(len(q)):
9595
i, j, state = q.popleft()

solution/0800-0899/0864.Shortest Path to Get All Keys/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class Solution:
7878
dirs = [-1, 0, 1, 0, -1]
7979
ans = 0
8080
mask = (1 << cnt) - 1
81-
vis = set([(start[0], start[1], 0)])
81+
vis = {(*start, 0)}
8282
while q:
8383
for _ in range(len(q)):
8484
i, j, state = q.popleft()

solution/0800-0899/0864.Shortest Path to Get All Keys/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def shortestPathAllKeys(self, grid: List[str]) -> int:
1111
dirs = [-1, 0, 1, 0, -1]
1212
ans = 0
1313
mask = (1 << cnt) - 1
14-
vis = set([(start[0], start[1], 0)])
14+
vis = {(*start, 0)}
1515
while q:
1616
for _ in range(len(q)):
1717
i, j, state = q.popleft()

solution/1100-1199/1197.Minimum Knight Moves/README.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,14 @@ class Solution:
6767
def minKnightMoves(self, x: int, y: int) -> int:
6868
q = deque([(0, 0)])
6969
ans = 0
70-
vis = set([(0, 0)])
70+
vis = {(0, 0)}
71+
dirs = ((-2, 1), (-1, 2), (1, 2), (2, 1), (2, -1), (1, -2), (-1, -2), (-2, -1))
7172
while q:
7273
for _ in range(len(q)):
7374
i, j = q.popleft()
7475
if (i, j) == (x, y):
7576
return ans
76-
for a, b in [[-2, 1], [-1, 2], [1, 2], [2, 1], [2, -1], [1, -2], [-1, -2], [-2, -1]]:
77+
for a, b in dirs:
7778
c, d = i + a, j + b
7879
if (c, d) not in vis:
7980
vis.add((c, d))
@@ -82,7 +83,7 @@ class Solution:
8283
return -1
8384
```
8485

85-
双向 BFS
86+
双向 BFS
8687

8788
```python
8889
class Solution:
@@ -91,7 +92,7 @@ class Solution:
9192
for _ in range(len(q)):
9293
i, j = q.popleft()
9394
step = m1[(i, j)]
94-
for a, b in [[-2, 1], [-1, 2], [1, 2], [2, 1], [2, -1], [1, -2], [-1, -2], [-2, -1]]:
95+
for a, b in ((-2, 1), (-1, 2), (1, 2), (2, 1), (2, -1), (1, -2), (-1, -2), (-2, -1)):
9596
x, y = i + a, j + b
9697
if (x, y) in m1:
9798
continue

solution/1100-1199/1197.Minimum Knight Moves/README_EN.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,14 @@ class Solution:
4848
def minKnightMoves(self, x: int, y: int) -> int:
4949
q = deque([(0, 0)])
5050
ans = 0
51-
vis = set([(0, 0)])
51+
vis = {(0, 0)}
52+
dirs = ((-2, 1), (-1, 2), (1, 2), (2, 1), (2, -1), (1, -2), (-1, -2), (-2, -1))
5253
while q:
5354
for _ in range(len(q)):
5455
i, j = q.popleft()
5556
if (i, j) == (x, y):
5657
return ans
57-
for a, b in [[-2, 1], [-1, 2], [1, 2], [2, 1], [2, -1], [1, -2], [-1, -2], [-2, -1]]:
58+
for a, b in dirs:
5859
c, d = i + a, j + b
5960
if (c, d) not in vis:
6061
vis.add((c, d))
@@ -72,7 +73,7 @@ class Solution:
7273
for _ in range(len(q)):
7374
i, j = q.popleft()
7475
step = m1[(i, j)]
75-
for a, b in [[-2, 1], [-1, 2], [1, 2], [2, 1], [2, -1], [1, -2], [-1, -2], [-2, -1]]:
76+
for a, b in ((-2, 1), (-1, 2), (1, 2), (2, 1), (2, -1), (1, -2), (-1, -2), (-2, -1)):
7677
x, y = i + a, j + b
7778
if (x, y) in m1:
7879
continue

solution/1100-1199/1197.Minimum Knight Moves/Solution.py

+3-11
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,14 @@ class Solution:
22
def minKnightMoves(self, x: int, y: int) -> int:
33
q = deque([(0, 0)])
44
ans = 0
5-
vis = set([(0, 0)])
5+
vis = {(0, 0)}
6+
dirs = ((-2, 1), (-1, 2), (1, 2), (2, 1), (2, -1), (1, -2), (-1, -2), (-2, -1))
67
while q:
78
for _ in range(len(q)):
89
i, j = q.popleft()
910
if (i, j) == (x, y):
1011
return ans
11-
for a, b in [
12-
[-2, 1],
13-
[-1, 2],
14-
[1, 2],
15-
[2, 1],
16-
[2, -1],
17-
[1, -2],
18-
[-1, -2],
19-
[-2, -1],
20-
]:
12+
for a, b in dirs:
2113
c, d = i + a, j + b
2214
if (c, d) not in vis:
2315
vis.add((c, d))

solution/1200-1299/1210.Minimum Moves to Reach Target with Rotations/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class Solution:
8686
n = len(grid)
8787
target = (n * n - 2, n * n - 1)
8888
q = deque([(0, 1)])
89-
vis = set([(0, 1)])
89+
vis = {(0, 1)}
9090
ans = 0
9191
while q:
9292
for _ in range(len(q)):

solution/1200-1299/1210.Minimum Moves to Reach Target with Rotations/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class Solution:
7878
n = len(grid)
7979
target = (n * n - 2, n * n - 1)
8080
q = deque([(0, 1)])
81-
vis = set([(0, 1)])
81+
vis = {(0, 1)}
8282
ans = 0
8383
while q:
8484
for _ in range(len(q)):

solution/1200-1299/1210.Minimum Moves to Reach Target with Rotations/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def check(a, b):
88
n = len(grid)
99
target = (n * n - 2, n * n - 1)
1010
q = deque([(0, 1)])
11-
vis = set([(0, 1)])
11+
vis = {(0, 1)}
1212
ans = 0
1313
while q:
1414
for _ in range(len(q)):

solution/1200-1299/1284.Minimum Number of Flips to Convert Binary Matrix to Zero Matrix/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class Solution:
7373
state = sum(1 << (i * n + j) for i in range(m)
7474
for j in range(n) if mat[i][j])
7575
q = deque([state])
76-
vis = set([state])
76+
vis = {state}
7777
ans = 0
7878
dirs = [0, -1, 0, 1, 0, 0]
7979
while q:

solution/1200-1299/1284.Minimum Number of Flips to Convert Binary Matrix to Zero Matrix/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class Solution:
6060
state = sum(1 << (i * n + j) for i in range(m)
6161
for j in range(n) if mat[i][j])
6262
q = deque([state])
63-
vis = set([state])
63+
vis = {state}
6464
ans = 0
6565
dirs = [0, -1, 0, 1, 0, 0]
6666
while q:

solution/1200-1299/1284.Minimum Number of Flips to Convert Binary Matrix to Zero Matrix/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ def minFlips(self, mat: List[List[int]]) -> int:
33
m, n = len(mat), len(mat[0])
44
state = sum(1 << (i * n + j) for i in range(m) for j in range(n) if mat[i][j])
55
q = deque([state])
6-
vis = set([state])
6+
vis = {state}
77
ans = 0
88
dirs = [0, -1, 0, 1, 0, 0]
99
while q:

solution/1200-1299/1293.Shortest Path in a Grid with Obstacles Elimination/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class Solution:
6868
if k >= m + n - 3:
6969
return m + n - 2
7070
q = deque([(0, 0, k)])
71-
vis = set([(0, 0, k)])
71+
vis = {(0, 0, k)}
7272
ans = 0
7373
while q:
7474
ans += 1

solution/1200-1299/1293.Shortest Path in a Grid with Obstacles Elimination/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class Solution:
5252
if k >= m + n - 3:
5353
return m + n - 2
5454
q = deque([(0, 0, k)])
55-
vis = set([(0, 0, k)])
55+
vis = {(0, 0, k)}
5656
ans = 0
5757
while q:
5858
ans += 1

solution/1200-1299/1293.Shortest Path in a Grid with Obstacles Elimination/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ def shortestPath(self, grid: List[List[int]], k: int) -> int:
44
if k >= m + n - 3:
55
return m + n - 2
66
q = deque([(0, 0, k)])
7-
vis = set([(0, 0, k)])
7+
vis = {(0, 0, k)}
88
ans = 0
99
while q:
1010
ans += 1

solution/1400-1499/1496.Path Crossing/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
class Solution:
5656
def isPathCrossing(self, path: str) -> bool:
5757
x = y = 0
58-
vis = set([(x, y)])
58+
vis = {(x, y)}
5959
for c in path:
6060
if c == 'N':
6161
y += 1

solution/1400-1499/1496.Path Crossing/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
class Solution:
4343
def isPathCrossing(self, path: str) -> bool:
4444
x = y = 0
45-
vis = set([(x, y)])
45+
vis = {(x, y)}
4646
for c in path:
4747
if c == 'N':
4848
y += 1

solution/1400-1499/1496.Path Crossing/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
class Solution:
22
def isPathCrossing(self, path: str) -> bool:
33
x = y = 0
4-
vis = set([(x, y)])
4+
vis = {(x, y)}
55
for c in path:
66
if c == 'N':
77
y += 1

solution/1500-1599/1546.Maximum Number of Non-Overlapping Subarrays With Sum Equals Target/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class Solution:
6969
ans = 0
7070
while i < n:
7171
s = 0
72-
seen = set([0])
72+
seen = {0}
7373
while i < n:
7474
s += nums[i]
7575
if s - target in seen:

solution/1500-1599/1546.Maximum Number of Non-Overlapping Subarrays With Sum Equals Target/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class Solution:
4646
ans = 0
4747
while i < n:
4848
s = 0
49-
seen = set([0])
49+
seen = {0}
5050
while i < n:
5151
s += nums[i]
5252
if s - target in seen:

solution/1500-1599/1546.Maximum Number of Non-Overlapping Subarrays With Sum Equals Target/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ def maxNonOverlapping(self, nums: List[int], target: int) -> int:
44
ans = 0
55
while i < n:
66
s = 0
7-
seen = set([0])
7+
seen = {0}
88
while i < n:
99
s += nums[i]
1010
if s - target in seen:

solution/1600-1699/1631.Path With Minimum Effort/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class Solution:
174174
while left < right:
175175
mid = (left + right) >> 1
176176
q = deque([(0, 0)])
177-
vis = set([(0, 0)])
177+
vis = {(0, 0)}
178178
while q:
179179
i, j = q.popleft()
180180
for a, b in [[0, 1], [0, -1], [1, 0], [-1, 0]]:

solution/1600-1699/1631.Path With Minimum Effort/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class Solution:
112112
while left < right:
113113
mid = (left + right) >> 1
114114
q = deque([(0, 0)])
115-
vis = set([(0, 0)])
115+
vis = {(0, 0)}
116116
while q:
117117
i, j = q.popleft()
118118
for a, b in [[0, 1], [0, -1], [1, 0], [-1, 0]]:

solution/2000-2099/2059.Minimum Operations to Convert Number/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ class Solution:
143143
return res
144144

145145
q = deque([start])
146-
vis = set([(start)])
146+
vis = {start}
147147
ans = 0
148148
while q:
149149
ans += 1

solution/2000-2099/2059.Minimum Operations to Convert Number/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class Solution:
101101
return res
102102

103103
q = deque([start])
104-
vis = set([(start)])
104+
vis = {start}
105105
ans = 0
106106
while q:
107107
ans += 1

solution/2100-2199/2174.Remove All Ones With Row and Column Flips II/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class Solution:
8181
state = sum(1 << (i * n + j) for i in range(m)
8282
for j in range(n) if grid[i][j])
8383
q = deque([state])
84-
vis = set([state])
84+
vis = {state}
8585
ans = 0
8686
while q:
8787
for _ in range(len(q)):

solution/2100-2199/2174.Remove All Ones With Row and Column Flips II/README_EN.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class Solution:
7373
state = sum(1 << (i * n + j) for i in range(m)
7474
for j in range(n) if grid[i][j])
7575
q = deque([state])
76-
vis = set([state])
76+
vis = {state}
7777
ans = 0
7878
while q:
7979
for _ in range(len(q)):

solution/2100-2199/2174.Remove All Ones With Row and Column Flips II/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ def removeOnes(self, grid: List[List[int]]) -> int:
33
m, n = len(grid), len(grid[0])
44
state = sum(1 << (i * n + j) for i in range(m) for j in range(n) if grid[i][j])
55
q = deque([state])
6-
vis = set([state])
6+
vis = {state}
77
ans = 0
88
while q:
99
for _ in range(len(q)):

0 commit comments

Comments
 (0)