Re: [閒聊] 每日leetcode

看板Marginalman作者 (dont)時間1年前 (2024/08/17 13:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串727/1548 (看更多)
1937. Maximum Number of Points with Cost ## 思路 直接照題目暴力作DP的話 會TLE -- O(MN^2) dp[r][c] = matrix[r][c] + max(dp[r-1][ci] - abs(c-ci)) 拆解 max(dp[r-1][ci] - abs(c-ci)) 分兩次for loop 由左往右/由右往左記錄curr_max curr_max = max(curr_max-1, dp[r-1][c]) dp[r][c] = matrix[r][c] + curr_max ## Code ```python class Solution: def maxPoints(self, points: List[List[int]]) -> int: len_r, len_c = len(points), len(points[0]) dp = [0] * len_c for r in range(len_r): next_dp = [0] * len_c curr_max = 0 for c in range(len_c): curr_max = max(curr_max - 1, dp[c]) next_dp[c] = points[r][c] + curr_max curr_max = 0 for c in range(len_c-1, -1, -1): curr_max = max(curr_max - 1, dp[c]) next_dp[c] = max(next_dp[c], points[r][c] + curr_max) dp = next_dp return max(dp) ``` -- http://i.imgur.com/OLvBn3b.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 185.213.82.178 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1723871185.A.F9F.html
文章代碼(AID): #1cm2_H-V (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cm2_H-V (Marginalman)