摘要: 写得有点复杂了,好在AC了。对我而言,hard难度的题目,能做出来算是不错了,效率上就不能做太高要求了。 本题的主要思想:先求两个字符串的最长公共子序列(LCS),然后再把不是最长公共子序列中的字符按任意顺序拼接在一起。 这里拼接策略是先补充str1中的字符,再补充str2中的字符。 阅读全文
posted @ 2019-06-16 21:08 Sempron2800+ 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 参考了CSDN上一位博主提供的C++的代码: 我尝试转换成python,但是却超时了: 超时的测试用例:1000000000,答案:1950627,python在我本机执行时间:11.3s。 目前没想到解决办法。 阅读全文
posted @ 2019-06-16 18:01 Sempron2800+ 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 1 class Solution: 2 def largestValsFromLabels(self, values: 'List[int]', labels: 'List[int]', num_wanted: int, use_limit: int) -> int: 3 dic = {} 4 for i in range(len(labels))... 阅读全文
posted @ 2019-06-16 15:10 Sempron2800+ 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 这道题使用dfs会超时,看评论区也有人遇到同样的问题,比赛时调试了1个多小时尝试改进,没有意识到应该换用非递归的bfs可以解决,消耗了大量的时间。 超时的方案如下,使用python实现:(经过尝试,能通过的测试用例中,使用5个方向就可以了) 下面是AC的解决方案,使用bfs思想,代码如下: 阅读全文
posted @ 2019-06-16 12:24 Sempron2800+ 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1 class Solution: 2 def duplicateZeros(self, arr: List[int]) -> None: 3 """ 4 Do not return anything, modify arr in-place instead. 5 """ 6 n = len(arr 阅读全文
posted @ 2019-06-16 12:13 Sempron2800+ 阅读(196) 评论(0) 推荐(0) 编辑