Skip to content

Commit 5ad1f64

Browse files
authored
Merge pull request #2221 from daiyongg-kim/main
[daiyongg-kim] WEEK 07 solutions
2 parents 466b3c6 + 82b79b7 commit 5ad1f64

5 files changed

Lines changed: 105 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+
# TC O(n^2)
3+
# SC O(1)
4+
def lengthOfLongestSubstring(self, s: str) -> int:
5+
max_size = 0
6+
n = len(s)
7+
for left in range(n):
8+
saw = set()
9+
for right in range(left, n):
10+
if s[right] in saw:
11+
break
12+
else:
13+
saw.add(s[right])
14+
max_size = max(max_size, right - left + 1)
15+
16+
return max_size

number-of-islands/daiyongg-kim.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
if not grid:
2+
return 0
3+
4+
m, n = len(grid), len(grid[0])
5+
6+
island_count = 0
7+
8+
def dfs(i, j):
9+
if i < 0 or i >= m or j < 0 or j >= n or grid[i][j] != "1":
10+
return
11+
grid[i][j] = "#"
12+
13+
dfs(i - 1, j)
14+
dfs(i + 1, j)
15+
dfs(i, j - 1)
16+
dfs(i, j + 1)
17+
18+
for i in range(m):
19+
for j in range(n):
20+
if grid[i][j] == "1":
21+
dfs(i, j)
22+
island_count += 1
23+
24+
return island_count
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
7+
class Solution:
8+
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
9+
curr = head
10+
prev = None
11+
12+
# Time Complexity : O(n)
13+
# Space Complexity : O(1)
14+
while curr:
15+
temp = curr.next
16+
curr.next = prev
17+
prev = curr
18+
curr = temp
19+
20+
return prev

set-matrix-zeroes/daiyongg-kim.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
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+
# Time Complexity(n^2)
7+
# Space Complexity O(1)
8+
row = len(matrix)
9+
col = len(matrix[0])
10+
row_zero = False
11+
12+
for r in range(row):
13+
for c in range(col):
14+
if matrix[r][c] == 0:
15+
matrix[0][c] = 0
16+
17+
if r > 0:
18+
matrix[r][0] = 0
19+
else:
20+
row_zero = True
21+
22+
for r in range(1, row):
23+
for c in range(1, col):
24+
if matrix[0][c] == 0 or matrix[r][0] == 0:
25+
matrix[r][c] = 0
26+
27+
if matrix[0][0] == 0:
28+
for r in range(row):
29+
matrix[r][0] = 0
30+
31+
if row_zero:
32+
for c in range(col):
33+
matrix[0][c] = 0

unique-paths/daiyongg-kim.py

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

0 commit comments

Comments
 (0)