Skip to content

Commit a45c387

Browse files
authored
Merge pull request #2227 from 8804who/main
[8804who] WEEK 07 solutions
2 parents 3276ff8 + 9a3ca05 commit a45c387

5 files changed

Lines changed: 87 additions & 0 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
def lengthOfLongestSubstring(self, s: str) -> int:
3+
start = 0
4+
end = 0
5+
answer = 0
6+
character_set = set()
7+
while end<len(s):
8+
while s[end] in character_set:
9+
character_set.remove(s[start])
10+
start += 1
11+
character_set.add(s[end])
12+
if answer < end-start+1:
13+
answer = end-start+1
14+
end += 1
15+
return answer
16+

number-of-islands/8804who.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution:
2+
def numIslands(self, grid: List[List[str]]) -> int:
3+
n, m = len(grid), len(grid[0])
4+
5+
answer = 0
6+
moves = [[-1,0],[1,0],[0,1],[0,-1]]
7+
visited = [[False for _ in range(m)] for _ in range(n)]
8+
def dfs(y, x):
9+
for move in moves:
10+
moved_y, moved_x = y+move[0], x+move[1]
11+
if n > moved_y >= 0 and m > moved_x >= 0:
12+
if grid[moved_y][moved_x] == '1' and not visited[moved_y][moved_x]:
13+
visited[moved_y][moved_x] = True
14+
dfs(moved_y, moved_x)
15+
16+
for i in range(n):
17+
for j in range(m):
18+
if not visited[i][j] and grid[i][j] == '1':
19+
visited[i][j] = True
20+
answer += 1
21+
dfs(i, j)
22+
return answer
23+

reverse-linked-list/8804who.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Definition for singly-linked list.
2+
# class ListNode:
3+
# def __init__(self, val=0, next=None):
4+
# self.val = val
5+
# self.next = next
6+
class Solution:
7+
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
8+
node = head
9+
reversed_node = None
10+
while node:
11+
val = node.val
12+
reversed_node = ListNode(val=val, next=reversed_node)
13+
node = node.next
14+
return reversed_node
15+
16+

set-matrix-zeroes/8804who.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution:
2+
def setZeroes(self, matrix: List[List[int]]) -> None:
3+
"""
4+
Do not return anything, modify matrix in-place instead.
5+
"""
6+
temp = []
7+
n, m = len(matrix), len(matrix[0])
8+
for i in range(n):
9+
for j in range(m):
10+
if matrix[i][j] == 0:
11+
temp.append((i, j))
12+
13+
for t in temp:
14+
for i in range(n):
15+
matrix[i][t[1]] = 0
16+
for j in range(m):
17+
matrix[t[0]][j] = 0
18+

unique-paths/8804who.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
def uniquePaths(self, m: int, n: int) -> int:
3+
dp = [[0 for _ in range(n)] for _ in range(m)]
4+
dp[0][0] = 1
5+
6+
for i in range(m):
7+
for j in range(n):
8+
if i-1>=0:
9+
dp[i][j]+=dp[i-1][j]
10+
if j-1>=0:
11+
dp[i][j]+=dp[i][j-1]
12+
13+
return dp[-1][-1]
14+

0 commit comments

Comments
 (0)