Re: [閒聊] 每日leetcode

作者: Rushia (みけねこ的鼻屎)   2024-03-14 11:12:36
https://leetcode.com/problems/binary-subarrays-with-sum/
930. Binary Subarrays With Sum
給你一個包含0和1的陣列nums和一個數字goal,找出所有相加為goal的子陣列數量。
思路:
1.假設nums[i:j]是一個總和為 goal 的子陣列,如果 nums[i:j] + nums[j + 1] 也等於
goal 就會產生一個新的子陣列,我們可以用 map 統計前面出現過的和共有幾個然後
不斷累加。
2.要快速求得當前位置 j 到任意位置 i 的和數量可以使用前綴和搭配map統計,
如果i~j存在和相加等於 goal:
nums[0:j] - nums[0:i] = goal, nums[0:i] = nums[0:j] - goal
所以檢查 nums[0:j] - goal 這個key就可以。
pycode:
作者: JIWP (JIWP)   2024-03-14 11:18:00
大師,我看比較快的都是用sliding window
作者: DJYOSHITAKA (Evans)   2024-03-14 11:22:00
大濕
作者: oin1104 (是oin的說)   2024-03-14 11:22:00
大師
作者: Rushia (みけねこ的鼻屎)   2024-03-14 12:07:00
雙指針不太好想

Links booklink

Contact Us: admin [ a t ] ucptt.com