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

看板Marginalman作者 (麵包屌)時間2年前 (2023/10/27 16:53), 編輯推噓1(101)
留言2則, 2人參與, 2年前最新討論串469/719 (看更多)
※ 引述《ZooseWu (動物園 公告)》之銘言: : 思路: : 動態規劃基本題 : 判斷兩個節點有沒有都在arr裡面 : 有的話就把兩個child的可能性乘起來 : 另外宣告一個Set : 可以讓判斷乘數有沒有在陣列中的時候不用再找整個陣列一次 : 因為Set的時間複雜度是O(1) : 原本想說可以不用理會乘數跟被乘數交換的狀況 : 反正最終都會輪到 : 但是後來看了別人的解答後 : 發現我沒有考慮到數字很大的情況下 : n跟sqrt(n)會差很大 : 有加上這個判斷可以讓時間複雜度從O(n^2)降到O(n*sqrt(n)) 這裡感覺有點怪 sqrt 和 n 應該沒關係 你要比的應該是 sqrt(max(arr)) 舉個例子 [1,2,3,4,5,13,169], n = 7 更新 dp[169] 的時候還是要掃完整個 arr 時間上是有變好 但複雜度沒有變 或者是要加類似 min(n, sqrt(max(arr))) 之類的東西進去 -- 蛤? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.148.59 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1698396781.A.345.html

10/28 03:43, 2年前 , 1F
大師
10/28 03:43, 1F

10/28 13:08, 2年前 , 2F
恩 我沒意識到n不是最大數 而是陣列數量 打錯了
10/28 13:08, 2F
文章代碼(AID): #1bEtfjD5 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bEtfjD5 (Marginalman)