Skip to content

Commit a2fce71

Browse files
author
aaron.liu
committed
update
1 parent 84ed369 commit a2fce71

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

Array/Meta_insert_with_order.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,4 @@ def insert_with_order(tagsA: List[str], tagsB: List[str], tag: str) -> int:
4141
listA = ['A', 'B', 'C', 'D', 'E', 'F']
4242
listB = ['A', 'C', 'F']
4343

44-
print(insert_with_order(listA, listB, 'D'))
45-
44+
print(insert_with_order(listA, listB, 'D'))

Array/Meta_max_add_with_self.py

Whitespace-only changes.

Array/Meta_max_add_without_self.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from typing import List
2+
import sys
3+
4+
def max_two_add_without_self(numsA: List[int], numsB: List[int]) -> int:
5+
if not numsA and not numsB: return 0
6+
7+
maxA = [-sys.maxsize - 1] * len(numsA)
8+
maxB = [-sys.maxsize - 1] * len(numsB)
9+
prev_maxA, prev_maxB = numsA[0], numsB[-1]
10+
11+
for i in range(1, len(numsA)):
12+
maxA[i] = prev_maxA # 注意这里先给maxA数组赋值 然后再更新pre_maxA: 不能包括当前的nums[i]
13+
prev_maxA = max(prev_maxA, numsA[i])
14+
15+
for j in range(len(numsB) - 1, -1, -1):
16+
maxB[j] = max(prev_maxB, numsB[j]) # maxB可以包括当前的numsB[i] 所以直接取历史最大的
17+
18+
min_len = min(len(numsA), len(numsB))
19+
ret = -sys.maxsize - 1
20+
# 从第二个元素开始看 因为numsA第一个元素永远取不到
21+
# 如果面试官说第一个元素取不到按照值为0算 就if(k == 0)特判一下 只取maxB[0]
22+
for k in range(1, min_len):
23+
ret = max(ret, maxA[k] + maxB[k])
24+
return ret
25+
26+
27+
# 测的时候 可以把numsA/B换个顺序输入函数 就变成一个长一个短了
28+
numsA = [2, 5, 3]
29+
numsB = [11, 4, 6, 7, 10]
30+
print(max_two_add_without_self(numsA, numsB))

0 commit comments

Comments
 (0)