Re: [閒聊] 每日LeetCode

看板Marginalman作者 (動物園 公告)時間2年前 (2023/11/21 11:21), 2年前編輯推噓2(201)
留言3則, 3人參與, 2年前最新討論串531/719 (看更多)
1814. Count Nice Pairs in an Array 給你一串陣列 陣列裡面都是正整數 然後有一個顛倒數rev 例如123的顛倒數rev(123)是321 120的顛倒數rev(120)是21 有兩個數a,b 如果rev(a) + b = a + rev(b) 則a與b則可以配成一對 求陣列內的數可能配對的數量 Intuition: 這一題我原本想的思路是錯的 寫半天解決了大部分的case之後有少數case沒辦法找出來 Approach: 我們透過交換率可以知道 rev(a) + b = a + rev(b) => a - rev(a) = b - rev(b) 所以只要兩個數 他們和自己的顛倒數差相等就可以配一對 我們只要用map把所有顛倒數差相等的放一起 然後Cn取2就後累加就能得到答案 TS Code: const mod = 1000000007 function getReverse (num: number): number { const n = num let reverse = 0 while (num > 0) { reverse *= 10 reverse += num % 10 num = Math.floor(num / 10) } return reverse } function countNicePairs (nums: number[]): number { const diffMap = new Map<number, number>() for (let i = 0; i < nums.length; i++) { const diff = getReverse(nums[i]) - nums[i] diffMap.set(diff, (diffMap.get(diff) ?? 0) + 1) } let result = 0 for (const value of diffMap.values()) { result = (result + value * (value - 1) / 2) % mod } return result } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.229.33 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1700536865.A.FC8.html

11/21 11:28, 2年前 , 1F
大師
11/21 11:28, 1F
※ 編輯: ZooseWu (114.32.229.33 臺灣), 11/21/2023 11:30:00

11/21 11:35, 2年前 , 2F
看了好多天的每日code文 所以程式設計=解答數學問題的?
11/21 11:35, 2F

11/21 11:39, 2年前 , 3F
刷題才是
11/21 11:39, 3F
文章代碼(AID): #1bN28X_8 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bN28X_8 (Marginalman)