Skip to content

Commit 1dfb5ab

Browse files
committed
做了道题
1 parent c656885 commit 1dfb5ab

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

main.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,35 @@ def compute(pre_sk, post_sk):
912912

913913
accu += sum_mana * skill[-1]
914914
return accu
915-
def lenLongestFibSubseq(self, arr: List[int]) -> int:
915+
916+
def maximumTotalDamage(self, power: List[int]) -> int:
917+
power.sort()
918+
mp = defaultdict(int)
919+
for p in power:
920+
mp[p] += 1
921+
keys = list(mp.keys())
922+
n = len(power)
923+
dp=[[0,0]for _ in range(len(keys))]
924+
dp[0][1] = keys[0] * mp[keys[0]]
925+
for i in range(1, len(keys)):
926+
now_key = keys[i]
927+
pre_key = keys[i-1]
928+
if now_key - pre_key > 2:
929+
dp[i][0] = max(dp[i-1][0], dp[i-1][1])
930+
dp[i][1] = max(dp[i-1]) + mp[now_key] * now_key
931+
else:
932+
free_key_idx = i-2
933+
while free_key_idx >= 0 and now_key - keys[free_key_idx] <= 2:
934+
free_key_idx -= 1
935+
if free_key_idx > -1:
936+
dp[i][0] = max(dp[i-1][0], dp[free_key_idx][1])
937+
dp[i][1] = max(dp[free_key_idx]) + mp[now_key] * now_key
938+
else:
939+
dp[i][0] = dp[i - 1][0]
940+
dp[i][1] = mp[now_key] * now_key
941+
return max(i[1] for i in dp)
942+
943+
def expressiveWords(self, s: str, words: List[str]) -> int:
916944

917945
# Your MovieRentingSystem object will be instantiated and called as such:
918946
# obj = MovieRentingSystem(n, entries)

test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from collections import Counter
22
from bisect import *
33

4-
a = {1:1, 2:2, 3:3, 4:4, 5:5, 6:6}
5-
print(len(a))
4+
a = [[1,2], [2,1]]
5+
print(max(i[1] for i in a))

0 commit comments

Comments
 (0)