Skip to content

Commit e3d4528

Browse files
committedMay 10, 2020
2020-05-10
1 parent c883ca1 commit e3d4528

File tree

5 files changed

+71
-48
lines changed

5 files changed

+71
-48
lines changed
 

‎0021.合并两个有序链表/0021-合并两个有序链表.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,23 @@ def mergeTwoLists(self, l1, l2):
1111
:type l2: ListNode
1212
:rtype: ListNode
1313
"""
14-
newhead = ListNode(0)
15-
p = newhead
16-
while(l1 and l2):
17-
if l1.val < l2.val:
14+
dummy = ListNode(-1)
15+
16+
p = dummy
17+
18+
while l1 and l2:
19+
if l1.val <= l2.val:
1820
p.next = ListNode(l1.val)
1921
l1 = l1.next
2022
else:
2123
p.next = ListNode(l2.val)
2224
l2 = l2.next
2325
p = p.next
24-
26+
2527
if l1:
2628
p.next = l1
27-
else:
29+
30+
if l2:
2831
p.next = l2
29-
return newhead.next
3032

31-
33+
return dummy.next

‎0053.最大子序和/0053-最大子序和.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ def maxSubArray(self, nums):
66
"""
77
if not nums:
88
return 0
9-
dp = [] # dp[i]表示以i结尾的连续子数组的最大和
9+
dp = [0 for _ in nums]
10+
dp[0] = nums[0]
11+
1012
for i, x in enumerate(nums):
11-
if i == 0:
12-
dp.append(x)
13-
else:
14-
if dp[-1] < 0:
15-
dp.append(x)
13+
if i:
14+
if dp[i - 1] > 0:
15+
dp[i] = max(dp[i - 1] + x, dp[i])
1616
else:
17-
dp.append(dp[-1] + x)
17+
dp[i] = x
1818

1919
return max(dp)

‎0098.验证二叉搜索树/0098-验证二叉搜索树.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ def isValidBST(self, root):
1111
:type root: TreeNode
1212
:rtype: bool
1313
"""
14-
def inOrder(node):
14+
def inorder(node):
1515
if not node:
1616
return []
17-
return inOrder(node.left) + [node.val] + inOrder(node.right)
17+
return inorder(node.left) + [node.val] + inorder(node.right)
1818

19-
inorder = inOrder(root)
20-
return len(inorder) == len(set(inorder)) and inorder == sorted(inorder)
19+
l = inorder(root)
20+
return l == sorted(l) and len(l) == len(set(l))

‎0221.最大正方形/0221-最大正方形.py

+18-29
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,26 @@ def maximalSquare(self, matrix):
44
:type matrix: List[List[str]]
55
:rtype: int
66
"""
7-
m = len(matrix)
8-
if m == 0:
7+
if not matrix or not matrix[0]:
98
return 0
10-
n = len(matrix[0])
11-
if n == 0:
12-
return 0
13-
self.res = 0
9+
m, n = len(matrix), len(matrix[0])
1410

15-
def find(x, y):
16-
for length in range(1, min(m - i, n - j) + 1):#lengthÊDZ߳¤
17-
cnt = 0
18-
19-
for k in range(length):
20-
for t in range(length):
21-
xx = x + k
22-
yy = y + t
23-
24-
if 0 <= xx <m and 0 <= yy < n:
25-
if matrix[xx][yy] == "0":
26-
return
27-
else:
28-
cnt += 1
29-
if cnt == length ** 2:
30-
self.res = max(self.res, cnt)
31-
32-
11+
dp = [[0 for _ in range(n)] for _ in range(m)]
12+
res = 0
13+
for j in range(n):
14+
if matrix[0][j] == "1":
15+
dp[0][j] = 1
16+
res = 1
3317

3418
for i in range(m):
35-
for j in range(n):
19+
if matrix[i][0] == "1":
20+
dp[i][0] = 1
21+
res = 1
22+
23+
for i in range(1, m):
24+
for j in range(1, n):
3625
if matrix[i][j] == "1":
37-
find(i, j)
38-
39-
return self.res
40-
26+
dp[i][j] = min(dp[i - 1][j - 1], dp[i][j - 1], dp[i - 1][j]) + 1
27+
res = max(res, dp[i][j] ** 2)
28+
# print dp
29+
return res
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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 isSubtree(self, s, t):
10+
"""
11+
:type s: TreeNode
12+
:type t: TreeNode
13+
:rtype: bool
14+
"""
15+
16+
if not s and not t:
17+
return True
18+
if s and not t:
19+
return False
20+
if t and not s:
21+
return False
22+
23+
return self.isSameTree(t, s) or self.isSubtree(s.left, t) or self.isSubtree(s.right, t)
24+
25+
def isSameTree(self, t1, t2):
26+
if not t1 and not t2:
27+
return True
28+
if t1 and not t2:
29+
return False
30+
if t2 and not t1:
31+
return False
32+
return t1.val == t2.val and self.isSameTree(t1.left, t2.left) and self.isSameTree(t1.right, t2.right)

0 commit comments

Comments
 (0)