Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-06-08 20:07:19
每日连续200天了,好耶
523. Continuous Subarray Sum
给一个整数array nums和一个整数k
请判断nums是否包含good subarray
subarray的定义
(1)至少有两个元素
(2)subarray的合是k的倍数
思路:
如果有两个数a、b,除以k的余数相等则(a-b)%k==0
所以用prefix sum的概念
用sum记录到目前为止所有元素的总和
并且用一个hash table纪录sum%k第一次出现的index
如果目前sum%k在之前已经出现过且index相差2以上就回传true
golang code:
func checkSubarraySum(nums []int, k int) bool {
if len(nums) < 2 {
return false
}
modMap, sum := make(map[int]int), 0
modMap[0] = -1
for i, num := range nums {
sum += num
mod := sum % k
if prevIndex, exists := modMap[mod]; exists {
if i - prevIndex >= 2 {
return true
}
} else {
modMap[mod] = i
}
}
return false
}
作者: sustainer123 (caster)   2024-06-08 20:09:00
好猛 大师你还差多少钱才能换衣服
作者: Che31128 (justjoke)   2024-06-08 20:09:00
大师
作者: aioiwer318 (哀欧)   2024-06-08 20:10:00
别卷了
楼主: JIWP (JIWP)   2024-06-08 20:10:00
没打周赛,点数赚很慢我现在才3229
作者: CanIndulgeMe (CIM)   2024-06-08 20:24:00
卷不动了......

Links booklink

Contact Us: admin [ a t ] ucptt.com