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

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/03/14 18:47), 編輯推噓0(001)
留言1則, 1人參與, 1年前最新討論串45/1548 (看更多)
※ 引述《Rushia (みけねこ的鼻屎)》之銘言: : https://leetcode.com/problems/binary-subarrays-with-sum/ : 930. Binary Subarrays With Sum : 給你一個包含0和1的陣列nums和一個數字goal,找出所有相加為goal的子陣列數量。 思路 : (1) sum為到i為止所有元素的總和,當sum==goal,ans++ 用hash table,紀錄之前出現過的值,去找sum-goal之前出現過幾次,並加到ans (2) sliding windows 設計一個function,可以找出一個array裡所有總和小於特定值的subarray 接著去找小於goal的subarray個數以及小於goal-1的subarray個數 兩個相減就是總和為goal的subarray的個數 golang code : func numSubarraysWithSum(nums []int, goal int) int { return count(nums,goal)-count(nums,goal-1) } func count(nums []int,goal int)int{ sum:=0 ans:=0 l:=0 for r:=0;r<len(nums);r++{ sum+=nums[r] for r>=l && sum>goal{ sum-=nums[l] l++ } ans+=r-l+1 } return ans } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.69.200 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1710413228.A.DCB.html

03/14 18:57, 1年前 , 1F
大師 我一直沒想出slidingwindow
03/14 18:57, 1F
文章代碼(AID): #1byjMitB (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1byjMitB (Marginalman)