手写算法
Delete Sublist to Make Sum Divisible By K
题目的意思是:删除数组中多余的数,让总和可被 K 整除
不明白,照抄的答案 😭
// TODO: 以后再做
class Solution {
solve(nums, k) {
if (!nums.length) return -1;
let target = nums.reduce((a, b) => a + b) % k;
if (target === 0) return 0;
let map = new Map();
map.set(0, 0);
let pos = 0,
now = 0,
ans = nums.length;
for (let num of nums) {
pos++;
now = (now + num) % k;
if (map.has((now + k - target) % k)) {
ans = Math.min(ans, pos - map.get((now + k - target) % k));
}
map.set(now, pos);
}
return ans === nums.length ? -1 : ans;
}
}
手写题:实现 Partial<T>
// keyof 索引查询 对应任何类型 T,keyof T的结果为该类型上所有公有属性key的联合
type MyPartial<T> = {
[key in keyof T]?: T[key];
};