Skip to content

Commit bf00cbe

Browse files
committed
upload on 3/21
1 parent 8d0c833 commit bf00cbe

6 files changed

+121
-0
lines changed

61. Rotate List.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Definition for singly-linked list.
2+
# class ListNode:
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.next = None
6+
7+
8+
class Solution:
9+
10+
def rotateRight(self, head, k):
11+
"""
12+
:type head: ListNode
13+
:type k: int
14+
:rtype: ListNode
15+
"""
16+
if not head:
17+
return None
18+
ptr = head
19+
length = 1
20+
while ptr.next != None:
21+
ptr = ptr.next
22+
length += 1
23+
24+
r_number = k % length
25+
if k == 0 or r_number == 0:
26+
return head
27+
28+
fast_ptr = head
29+
slow_ptr = head
30+
for _ in range(r_number):
31+
fast_ptr = fast_ptr.next
32+
33+
while fast_ptr.next != None:
34+
fast_ptr = fast_ptr.next
35+
slow_ptr = slow_ptr.next
36+
37+
temp = slow_ptr.next
38+
fast_ptr.next = head
39+
slow_ptr.next = None
40+
head = temp
41+
return head

62. Unique Paths.py

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

63. Unique Paths II.py

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

64. Minimum Path Sum.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution:
2+
3+
def minPathSum(self, grid: 'List[List[int]]') -> 'int':
4+
m = len(grid)
5+
n = len(grid[0])
6+
aux = [[0] * n for _ in range(m)]
7+
aux[0][0] = grid[0][0]
8+
for i in range(m):
9+
for j in range(n):
10+
if i - 1 >= 0 and j - 1 >= 0:
11+
aux[i][j] = min(aux[i - 1][j], aux[i][j - 1]) + grid[i][j]
12+
elif i - 1 >= 0:
13+
aux[i][j] = aux[i - 1][j] + grid[i][j]
14+
elif j - 1 >= 0:
15+
aux[i][j] = aux[i][j - 1] + grid[i][j]
16+
return aux[-1][-1]

66. Plus One.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
3+
def plusOne(self, digits: List[int]) -> List[int]:
4+
n = len(digits)
5+
carry = 1
6+
for i in range(n - 1, -1, -1):
7+
temp = digits[i] + carry
8+
digits[i] = temp % 10
9+
carry = temp // 10
10+
return digits if carry == 0 else [1] + digits

67. Add Binary.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution:
2+
3+
def addBinary(self, a: str, b: str) -> str:
4+
new = ""
5+
m = len(a) - 1
6+
n = len(b) - 1
7+
carry = 0
8+
while m >= 0 and n >= 0:
9+
temp = int(a[m]) + int(b[n]) + carry
10+
new = str(temp % 2) + new
11+
carry = temp // 2
12+
m -= 1
13+
n -= 1
14+
while m >= 0:
15+
temp = int(a[m]) + carry
16+
new = str(temp % 2) + new
17+
carry = temp // 2
18+
m -= 1
19+
while n >= 0:
20+
temp = int(b[n]) + carry
21+
new = str(temp % 2) + new
22+
carry = temp // 2
23+
n -= 1
24+
return new if not carry else "1" + new

0 commit comments

Comments
 (0)