Re: [閒聊] 每日LeetCode已回收
※ 引述《pandix (麵包屌)》之銘言:
: Python code:
: class Solution:
: def subarraysDivByK(self, nums: List[int], k: int) -> int:
: count = [1] + [0]*(k-1)
: sum = res = 0
: for num in nums:
: sum += num
: res += count[sum%k]
: count[sum%k] += 1
: return res
怎麼感覺推出來好像怪怪的
nums = [-1, 2, 9], k = 2
count = [1, 0]
1.sum = -1, res += count[-1] = 0, count[-1] = 1
2.sum = 1, res += count[1] = 0, count[1] = 1
3.sum = 10, res += count[0] = 1, count[0] = 2
res = 1 但是答案為2
查了一下
靠邀阿 python 的負數索引會自己位移 = =
不然一般來說這題要對負數做特別處理
class Solution {
public int subarraysDivByK(int[] nums, int k) {
int[] mod = new int[k + 1];
mod[0] = 1;
int res = 0;
int sum = 0;
for (int num : nums) {
sum = (sum + num % k + k) % k;
res += mod[sum];
mod[sum]++;
}
return res;
}
}
偏數學的對我真的不太好想= =
--
https://i.imgur.com/bFRiqA3.jpg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.75.86 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1674152696.A.61C.html
推
01/20 06:48,
2年前
, 1F
01/20 06:48, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 198 之 719 篇):