This commit is contained in:
2026-06-13 03:04:54 +10:00
parent 5022093fad
commit ec07a9322b
23 changed files with 208 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
package top100liked
import "testing"
// https://leetcode.cn/problems/continuous-subarray-sum/
func checkSubarraySum(nums []int, k int) bool {
idx := make(map[int]int)
cur := 0
idx[0] = -1
for i, v := range nums {
cur += v
if j, ok := idx[cur%k]; ok {
if i-j >= 2 {
return true
}
} else {
idx[cur%k] = i
}
}
return false
}
func TestS10_1(t *testing.T) {
println(checkSubarraySum([]int{23, 2, 6, 4, 7}, 13))
}
+28
View File
@@ -0,0 +1,28 @@
package top100liked
import "testing"
// https://leetcode.cn/problems/subarray-sum-equals-k/description/?envType=study-plan-v2&envId=top-100-liked
// 这题好难,理解不能
func subarraySum(nums []int, k int) int {
freq := make(map[int]int)
freq[0] = 1
cur := 0
res := 0
for _, v := range nums {
cur += v
if f, ok := freq[cur-k]; ok {
res += f
}
freq[cur]++
}
return res
}
func TestS10(t *testing.T) {
println(subarraySum([]int{1, 1, 1}, 2))
println(subarraySum([]int{1, 2, 3}, 3))
println(subarraySum([]int{1}, 0))
println(subarraySum([]int{-1, -1, 1}, 0))
}