Re: [閒聊] 每日leetcode

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/11/16 16:53), 編輯推噓2(200)
留言2則, 2人參與, 1年前最新討論串1126/1554 (看更多)
忘記哪天的每日 補一下 2563. Count the Number of Fair Pairs 給一個array : nums,長度為n 再給兩個數字lower、upper 從array中任意選兩個數字nums[i]、nums[j] 這兩個數字要滿足 lower<=nums[i]+nums[j]<upper 請問這樣的組合有幾組? 思路: 先將nums進行排序 在建立一個count function 作用是找出nums中兩個數字總和小於target的組合有幾組 在count function中 令l=0、r=nums.length-1 如果nums[l]+nums[r]<target,l就+1 且回傳值加上r-l 如果nums[l]+nums[r]>=target,r就-1 這樣count function就完成了 接著回傳count(upper+1)-count(lower)就是答案 golang code : func countFairPairs(nums []int, lower int, upper int) int64 { slices.Sort(nums) return int64(count(upper+1, nums) - count(lower, nums)) } func count(target int, nums []int) int { l, r, res := 0, len(nums)-1, 0 for r > l { sum := nums[l] + nums[r] if sum >= target { r-- } else { res+=r-l l++ } } return res } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.99.213 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1731747181.A.6FF.html

11/16 16:59, 1年前 , 1F
來台北還刷題 太卷了
11/16 16:59, 1F

11/16 17:09, 1年前 , 2F
卷死我了
11/16 17:09, 2F
文章代碼(AID): #1dE5rjR_ (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1dE5rjR_ (Marginalman)