Re: [閒聊] 每日leetcode

看板Marginalman作者 (franchouchouISBEST)時間1周前 (2024/04/25 22:20), 1周前編輯推噓2(201)
留言3則, 3人參與, 1周前最新討論串161/197 (看更多)
2370. Longest Ideal Subsequence 一開始有想到大方向 但做起來有點不順 沒有把dp定義的清楚一點的話寫起來就會錯東錯西 第i輪的dp[c] 定義成走到第i輪的時候 若str[i]==c的話 當時的長度 所以for loop最前面可以更新ans 然後再來更新 以c上下找k的範圍裏面的dp arr = dp[c]+1 (如果比較大的話) 我第一個錯是dp沒有initialize成1 會出問題 第二個是更新的時候 我一開始寫成dp[idx] = max(dp[idx], dp[s[i]-'a']+1); 這樣會把自己重複加 造成c的右半會被誤加 簡單來說 我好爛 int longestIdealString(string s, int k) { vector<int> dp(26, 1); int ans = 0; for(int i=0; i<s.size(); i++) { ans = max(ans, dp[s[i]-'a']); int cur_cnt = dp[s[i]-'a']; for(int idx=max((s[i] - 'a') - k, 0); idx<=min((s[i] - 'a') + k, 25); idx++) { dp[idx] = max(dp[idx], cur_cnt+1); } } return ans; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.83.190 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1714054858.A.1A0.html

04/25 22:24, 1周前 , 1F
我今天看解答 超廢
04/25 22:24, 1F

04/25 22:24, 1周前 , 2F
其實好像根本不需要i==
04/25 22:24, 2F

04/25 22:33, 1周前 , 3F
你很棒
04/25 22:33, 3F
你們是大師 ※ 編輯: DJYOSHITAKA (114.137.83.190 臺灣), 04/25/2024 22:36:28
文章代碼(AID): #1cAcRA6W (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cAcRA6W (Marginalman)