LeetCode 974 Subarray Sums Divisible by K All In One
LeetCode 974 Subarray Sums Divisible by K All In One
LeetCode 974 能被 K 整除的子数组之和
erros
function subarraysDivByK(nums: number[], k: number): number {
// -5 / 0 / 5
let count: number = 0;
// 单个元素
for(let i = 0; i < nums.length; i++) {
if(Math.abs(nums[i] % k) === 0) {
// console.log(`✅ nums[i] =`, nums[i])
count += 1;
}
}
// 多个元素
let i = 0;
let j = 0;
let remainder = 0;
for(i; i < nums.length - 1; i++) {
remainder = nums[i];
// console.log(`✅ sum =`, sum)
// reminder 提醒 ❌
// remainder 余数 ✅
for(j = i + 1; j < nums.length; j++) {
remainder = (remainder + nums[j]) % k;
// console.log(`❌ sum =`, sum)
if(Math.abs(remainder) === 0) {
count += 1;
}
}
}
return count;
};
/*
Time Limit Exceeded
66 / 73 testcases passed
nums =
[0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0]
k =
10000
*/
// function subarraysDivByK(nums: number[], k: number): number {
// // -5 / 0 / 5
// let count: number = 0;
// // 单个元素
// for(let i = 0; i < nums.length; i++) {
// if(Math.abs(nums[i] % k) === 0) {
// // console.log(`✅ nums[i] =`, nums[i])
// count += 1;
// }
// }
// // 多个元素
// let i = 0;
// let j = 0;
// let sum = 0;
// for(i; i < nums.length - 1; i++) {
// sum = nums[i];
// // console.log(`✅ sum =`, sum)
// for(j = i + 1; j < nums.length; j++) {
// sum += nums[j];
// // console.log(`❌ sum =`, sum)
// if(Math.abs(sum % k) === 0) {
// count += 1;
// }
// }
// }
// return count;
// };
// function subarraysDivByK(nums: number[], k: number): number {
// // -5 / 0 / 5
// let i = 0;
// let j = 0;
// let sum = 0;
// let result = [];
// let temp = [];
// for(let i = 0; i < nums.length; i++) {
// if(Math.abs(nums[i] % k) === 0) {
// result.push([nums[i]]);
// }
// }
// for(i; i < nums.length - 1; i++) {
// // if(Math.abs(nums[i] % k) === 0) {
// // console.log(`✅ nums[i] =`, nums[i]);
// // result.push([nums[i]]);
// // console.log(`❓ result =`, result);
// // }
// temp = [];
// j = i + 1;
// temp.push(nums[i])
// for(j; j < nums.length; j++) {
// temp.push(nums[j])
// sum = temp.reduce((s, item) => s += item, 0);
// if(Math.abs(sum % k) === 0) {
// result.push(temp);
// // break;
// }
// console.log(`🚀 result =`, result, j);
// }
// // console.log(`🚀 result =`, result, j);
// }
// console.log(`❌ result =`, result);
// return result.length;
// };
/*
Output Limit Exceeded
38 / 73 testcases passed
nums =
[0,0,0,0,0,0,0,
....
,0,0,0,0,0,0,0]
k =
1000
*/
solutions
prefix sum / 前缀和
function subarraysDivByK(nums: number[], k: number): number {
const map = new Map<number, number>();
map.set(0, 1);
let sum = 0;
let count = 0;
let remainder = 0;
for (let num of nums) {
sum += num;
// ??? + K 是为了处理负数的情况 ✅
remainder = ((sum % k) + k) % k;
if (map.has(remainder)) {
count += map.get(remainder)!;
}
map.set(remainder, (map.get(remainder) || 0) + 1);
}
return count;
};
/*
Input: nums = [4,5,0,-2,-3,1], k = 5
Output: 7
Explanation: There are 7 subarrays with a sum divisible by k = 5:
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
for (let i of ``.padEnd(6, ` `).split(``).map((_, i) => i)) {
console.log(`i =`, i, `; i % 5 =`, i % 5)
}
// i = 0 ; i % 5 = 0
// i = 1 ; i % 5 = 1
// i = 2 ; i % 5 = 2
// i = 3 ; i % 5 = 3
// i = 4 ; i % 5 = 4
// i = 5 ; i % 5 = 0
*/
demos
https://leetcode.com/problems/subarray-sums-divisible-by-k/description/?source=submission-ac
refs
https://www.youtube.com/watch?v=22ZTHGKDSS4
https://www.youtube.com/watch?v=6lik5HreRHI
https://www.youtube.com/watch?v=F71NLEXIUXM
©xgqfrms 2012-2025
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/18241060
未经授权禁止转载,违者必究!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2022-06-10 pure CSS carousel effect All In One
2021-06-10 CSS 1fr All In One
2021-06-10 GitHub Desktop open in VSCode bug All In One
2021-06-10 ES6 Async Await bug All In One
2021-06-10 CSS Grid 布局的 item 最后一行,不拉伸 All In One
2020-06-10 前端监控平台 & 架构
2020-06-10 微软 AI 公开课