手写算法

Delete Sublist to Make Sum Divisible By Kopen in new window

题目的意思是:删除数组中多余的数,让总和可被 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>

1. 实现 Partialopen in new window

// keyof 索引查询 对应任何类型 T,keyof T的结果为该类型上所有公有属性key的联合

type MyPartial<T> = {
  [key in keyof T]?: T[key];
};
Last Updated:
Contributors: kk