关注
第四题贴个代码,做法没问题,python没有gc所以一直内存超限。。优化了很久把dp的dict改成反复清空的一维list还是不行,十分郁闷。。 其实思路跟leetcode813.最大平均值和的分组差不多,就是把平均数换成了类别数 import sys
def largestScore(A: list, K: int) -> float:
n = len(A)
count = {} # 先计算各个段的场次数方便后面调用
for i in range(n):
now = {A[i]}
count[i, i+1] = 1
for j in range(i+1, n):
now.add(A[j])
count[i, j+1] = len(now)
dp = {(1, i): count[0, i] for i in range(1, n+1)} # dp[k, i] 前i个数分成k组的最大分数
for i in range(2, n+1):
for j in range(i, n+1):
_max = dp[i-1, j-1] + 1
for k in range(i-1, j-1):
_max = max(_max, dp[i-1, k] + count[k, j])
dp[i, j] = _max
return dp[K, n]
_, K = map(int, sys.stdin.readline().strip().split(' '))
A = list(map(int, sys.stdin.readline().strip().split(' ')))
print(largestScore(A, K))
查看原帖
1 评论
相关推荐
11-04 19:37
桂林电子科技大学 运维工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
170986次浏览 2882人参与
# 找工作,行业重要还是岗位重要? #
85170次浏览 1685人参与
# 职场上哪些行为很加分? #
306524次浏览 3448人参与
# 大家每天通勤多久? #
69474次浏览 440人参与
# 你面试体验感最差/最好的公司 #
16480次浏览 268人参与
# 实习的内耗时刻 #
210880次浏览 1537人参与
# 一人说一个提前实习的好处 #
9909次浏览 197人参与
# 互联网行业现在还值得去吗 #
46845次浏览 351人参与
# 今年你最想重开的一场面试是? #
3720次浏览 66人参与
# 秋招落幕,你是He or Be #
10538次浏览 215人参与
# 重来一次,你会对开始求职的自己说 #
5740次浏览 143人参与
# 实习没事做是福还是祸? #
16072次浏览 245人参与
# 反问环节如何提问 #
126327次浏览 2663人参与
# 礼物开箱Plog #
617次浏览 21人参与
# 团建是“福利”还是是 “渡劫” #
6840次浏览 145人参与
# 我的第一份实习怎么找的 #
208469次浏览 1827人参与
# 工作中听到最受打击的一句话 #
6109次浏览 108人参与
# 比亚迪工作体验 #
74405次浏览 281人参与
# 你小心翼翼的闯过多大的祸? #
10749次浏览 156人参与
# 大厂VS公务员你怎么选 #
74416次浏览 681人参与
查看25道真题和解析
小天才公司福利 1311人发布