题解 | #最大子序列#

最大子序列

https://www.nowcoder.com/practice/17ba5b5df1fc49ca8d6cf8ea407b1972

s = input().strip()
# 动态规划:dp[i]以i结尾的最大字典序
'''
t e/te s/ts/tes t/tt/tes/test
'''
dp = ["" for _ in range(len(s))]
dp[0] = s[0]
for i in range(len(s)):
    for j in range(0, i):
        dp[i] = max(dp[j]+s[i], dp[i], s[i])
print(dp[len(s)-1])

动态规划可以解决大多数的子序问题,

输入test,每一轮比较如注释:

t e/te s/ts/tes t/tt/tes/test

dp的更新考虑每一个前序dp加上当前字符的最大值;或者重启起始字符串,从s[i]开始

时间复杂度O(n2)

(第一个题解,看答得人不多就写了)

全部评论

相关推荐

10-15 20:01
已编辑
上海大学 Java
钉钉什么垃圾公司,约面鸽人
Syca_:途虎养车给我定了我这边早上六点的笔试,睡了四个小时起来难受的要命,告诉我面试时间是两天后的凌晨四点
点赞 评论 收藏
分享
点赞 评论 收藏
分享
10-13 22:56
门头沟学院 C++
rt,鼠鼠的浪潮网签明天过期,鼠鼠是山东人,好像自己也能接受。之前的面试大厂基本挂干净了,剩下小米二面后在泡,问了下面试官没有挂,但要泡。还有海信似乎也通过了,不过在深圳,鼠鼠也不是很想去。其它还有一些公司应该陆陆续续还有一些面试,现在有些纠结是直接签了还是再等再面呢?大佬们能不能给鼠鼠提一些意见,万分感谢!!!
牛客78696106...:浪潮可不是开摆,当初我还是开发的时候我组长跟我说他们组有段时间天天1,2点走,早上5点就来,全组肝出来心肌炎,浪潮挣钱省立花可不是说说,当然也看部门,但是浪潮普遍就那dio样,而且你算下时薪就知道不高,没事也是9点半走,不然算你旷工
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务