Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (麵包屌)時間2年前 (2023/05/12 01:33), 編輯推噓2(200)
留言2則, 2人參與, 2年前最新討論串318/719 (看更多)
1035. Uncrossed Lines 兩個 integer array nums1, nums2 如果 nums1[i] == nums2[j] 就可以在他們中間畫一條線 問你最多能畫幾條不交叉的線 Example 1: https://assets.leetcode.com/uploads/2019/04/26/142.png
Input: nums1 = [1,4,2], nums2 = [1,2,4] Output: 2 Example 2: Input: nums1 = [2,5,1,2,5], nums2 = [10,5,2,1,5,2] Output: 3 Example 3: Input: nums1 = [1,3,7,1,7,5], nums2 = [1,9,2,5,1] Output: 2 思路: 1.假設畫出來的線的值是 nums3 好了 nums3 會是 nums1 的 subsequence 同時也會是 nums2 的 subsequence 題目就等於說要找最長的共同 subsequence 蛤 LCS! class Solution: def maxUncrossedLines(self, nums1: List[int], nums2: List[int]) -> int: m, n = len(nums1), len(nums2) dp = [[0]*(n+1) for _ in range(m+1)] for i in range(1,m+1): for j in range(1,n+1): if nums1[i-1] == nums2[j-1]: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i-1][j], dp[i][j-1]) return dp[-1][-1] -- 蛤? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.252.3.181 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1683826413.A.B35.html

05/12 01:37, 2年前 , 1F
大師
05/12 01:37, 1F

05/12 07:58, 2年前 , 2F
我的超人
05/12 07:58, 2F
文章代碼(AID): #1aNIRjir (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1aNIRjir (Marginalman)