LeetCode题解(0718):最长重复子数组(Python)
发布日期:2021-06-29 20:09:30 浏览次数:3 分类:技术文章

本文共 926 字,大约阅读时间需要 3 分钟。

题目:(中等)

标签:二分查找、哈希表、数组、动态规划

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( ( N 1 + N 2 ) × N 1 × l o g ( m i n ( N 1 , N 2 ) ) ) O((N1+N2)×N1×log(min(N1,N2))) O((N1+N2)×N1×log(min(N1,N2))) O ( N 1 2 ) O(N1^2) O(N12) 5964ms (28%)
Ans 2 (Python)
Ans 3 (Python)

解法一(二分查找):

class Solution:    def findLength(self, A: List[int], B: List[int]) -> int:        def check(v):            hashmap = set()            for i in range(len(A) - v + 1):                hashmap.add("".join(str(a) for a in A[i:i + v]))            for i in range(len(B) - v + 1):                if "".join(str(b) for b in B[i:i + v]) in hashmap:                    return True            return False        ans = 0        left, right = 0, min(len(A), len(B)) + 1        while left < right:            mid = (left + right) // 2            if check(mid):                ans = mid                left = mid + 1            else:                right = mid        return ans

转载地址:https://dataartist.blog.csdn.net/article/details/109838524 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(0734):句子相似性(Python)
下一篇:LeetCode题解(0711):不同岛屿的数量II(Python)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年05月01日 02时10分17秒