zoukankan      html  css  js  c++  java
  • 连续数组

    连续数组

    传送门

    • 前缀和+哈希
    /**
     * @param {number[]} nums
     * @return {number}
     */
    var findMaxLength = function(nums) {
        let cnt = 0 , mx = 0;
        let mp = new Map();
          nums.forEach((d,i)=>{
              cnt += (d===1);
              cnt -= (d===0);
              if(cnt === 0) mx = Math.max(i+1,mx);
              if(mp.has(cnt)) {
                  let tmp = mp.get(cnt);
                  mx = Math.max(i-tmp,mx);
              }
              else mp.set(cnt,i);
          })
        return mx ;
    };
    

    PS:感觉貌似一般求连续XX的时候,通常会用到前缀和的方式。。之后为了避免tle,可能会用到哈希表之类的数据结构+题目的各种特性 来进行优化。。然鹅这道题对cnt的处理倒是让我想到了那个"投票算法"。。贴个链接

  • 相关阅读:
    HTML的基本骨架
    2017.7.27
    2017.7.26
    2017.7.25
    2017.7.24
    2017.7.22
    2017.7.21
    Javascript Step by Step
    Javascript Step by Step
    Javascript Step by Step
  • 原文地址:https://www.cnblogs.com/Calculus9/p/14844001.html
Copyright © 2011-2022 走看看