Re: [閒聊] 每日leetcode

看板Marginalman作者 (JerryChung)時間1年前 (2024/08/19 12:15), 編輯推噓1(101)
留言2則, 2人參與, 1年前最新討論串734/1548 (看更多)
https://leetcode.com/problems/2-keys-keyboard 650. 2 Keys Keyboard 一開始有一個 'A' 在記事本中,有兩種操作方式 複製全部:將目前所有文字複製 貼上 :將複製的文字貼上 給一個數字 n ,求獲得 n 個 'A' 最少要進行的步驟次數 Example 1: Input: n = 3 Output: 3 Explanation: 一開始有一個 'A' Step 1, 複製 Step 2, 貼上 得到 'AA' Step 3, 貼上 得到 'AAA' Example 2: Input: n = 1 Output: 0 Constraints: 1 <= n <= 1000 思路: 知道在做什麼但沒有想法 所以先從小數字實際算一次找規律 結果發現似乎是質因數加總的答案 於是就直接go 如 12 = 2 * 2 * 3 , 2 + 2 + 3 = 7 答案就是 7 如 8 = 2 * 2 * 2 , 2 + 2 + 2 = 6 答案 6 (cpcpcp) or (cpcppp) Python Code: class Solution: def minSteps(self, n: int) -> int: ans = 0 # [] while n % 2 == 0: ans += 2 # append n //= 2 for i in range(3, int(n**0.5) + 1, 2): while n % i == 0: ans += i # append n //= i if n > 2: ans += n # append return ans # sum() 原本用 list 存質因數 最後再用 sum 不過直接進行加總好像更好 所以這題的原理是啥 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.52.67 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1724040928.A.DD2.html

08/19 12:17, 1年前 , 1F
又忘記問了 所以有leetcode群嗎 窩不知道跑2是誰:(
08/19 12:17, 1F

08/19 13:48, 1年前 , 2F
大師
08/19 13:48, 2F
文章代碼(AID): #1cmiRWtI (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cmiRWtI (Marginalman)