剑指 Offer 61. 扑克牌中的顺子

  1. var isStraight = function(nums) {
  2. let max, min;
  3. let store = new Set();
  4. for (let num of nums) {
  5. if (num == 0) continue;
  6. // console.log(store)
  7. if (store.has(num)) return false;
  8. store.add(num);
  9. if (!max || num > max) max = num;
  10. if (!min || num < min) min = num;
  11. }
  12. if (max == 0 || min == 0) return true;
  13. return max - min + 1 <= nums.length;
  14. };

187. 重复的DNA序列

var findRepeatedDnaSequences = function(s) {
    let n = 10;
    let subs = new Set();
    let res = new Set();
    for (let i = 0; i < s.length - n + 1; i++) {
        let sub = s.slice(i, i + n);
        if (subs.has(sub)) {
            res.add(sub);
        }
        subs.add(sub);
    }
    return [...res];
};

349. 两个数组的交集

var intersection = function(nums1, nums2) {
    let s = new Set(nums1);
    let res = new Set();
    for (let num of nums2) {
        if (s.has(num)) {
            res.add(num);
        }
    }
    return [...res];
};

961. 重复 N 次的元素

var repeatedNTimes = function(nums) {
    let s = new Set();
    for (let num of nums) {
        if (s.has(num)) return num;
        s.add(num);
    }
};