Skip to content

Commit 39d0f69

Browse files
committed
2020-07-06
1 parent 8fa53a7 commit 39d0f69

File tree

5 files changed

+73
-5
lines changed

5 files changed

+73
-5
lines changed

112.路径总和/112-路径总和.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
class Solution(object):
9+
def hasPathSum(self, root, s):
10+
"""
11+
:type root: TreeNode
12+
:type sum: int
13+
:rtype: bool
14+
"""
15+
self.res = False
16+
17+
def dfs(node, pathSum):
18+
if not self.res and node:
19+
pathSum += node.val
20+
21+
if pathSum == s and not node.left and not node.right:
22+
self.res = True
23+
return
24+
25+
dfs(node.left, pathSum)
26+
dfs(node.right, pathSum)
27+
dfs(root, 0)
28+
return self.res

276.栅栏涂色/276-栅栏涂色.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution(object):
2+
def numWays(self, n, k):
3+
"""
4+
:type n: int
5+
:type k: int
6+
:rtype: int
7+
"""
8+
dp = [0 for _ in range(n + 3)]
9+
dp[0] = n
10+
dp[1] = k
11+
dp[2] = k * k
12+
13+
for i in range(3, n + 1):
14+
dp[i] = dp[i - 1] * (k - 1) + dp[i - 2] * (k - 1)
15+
return dp[n]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution(object):
2+
def waysToStep(self, n):
3+
"""
4+
:type n: int
5+
:rtype: int
6+
"""
7+
dp = [0 for _ in range(n + 3)]
8+
dp[1] = 1
9+
dp[2] = 2
10+
dp[3] = 4
11+
MOD = 10 ** 9 + 7
12+
for i in range(4, n + 1):
13+
dp[i] = (dp[i - 1] + dp[i - 2] + dp[i - 3]) % MOD
14+
return dp[n]
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution(object):
2+
def maxSubArray(self, nums):
3+
"""
4+
:type nums: List[int]
5+
:rtype: int
6+
"""
7+
dp = [0 for _ in nums]
8+
for i, x in enumerate(nums):
9+
dp[i] = max(x, dp[i - 1] + x) if i else x
10+
return max(dp)

面试题17.16.按摩师/面试题17.16-按摩师.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ def massage(self, nums):
44
:type nums: List[int]
55
:rtype: int
66
"""
7+
if not nums:
8+
return 0
9+
if len(nums) == 1:
10+
return nums[0]
711
dp = [0 for _ in nums]
8-
912
for i in range(len(nums)):
10-
dp[i] = nums[i]
11-
for j in range(i - 1):
12-
dp[i] = max(dp[i], dp[j] + nums[i])
13-
return max(dp) if nums else 0
13+
dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])
14+
return dp[-1]

0 commit comments

Comments
 (0)