前端ARTS打卡计划(六)

2021/03/22 ARTS 本文共2948字,阅读全文约需12分钟 本文总阅读量

  前端 ARTS 打卡计划(六)。

ARTS 打卡计划

第五十一周(2021.03.22-2021.03.28)

  • Algorithm:

    • 5. 最长回文子串
    • 14. 最长公共前缀
    • 100. 相同的树
    • 146. LRU 缓存机制 | JS 项目中究竟应该使用 Object 还是 Map?| 项目复盘
      // Map里面的属性的顺序是根据添加时的顺序进行排序的,对象则不然(数字属性和非数字属性有差别),可以利用这一点完成LRU
      class LRUCache {
          constructor(capacity) {
              this.capacity = capacity
              this.map = new Map();
          }
      
          get(key) {
              let val = this.map.get(key);
              if (val === undefined) return -1;
      
              this.map.delete(key); // 因为被用过一次,原有位置删除
              this.map.set(key, val); // 放入最下面表示最新使用
              return val;
          }
      
          put(key, val) {
              if (this.map.has(key)) this.map.delete(key); // 如果有,删除
      
              this.map.set(key, val); // 放到最下面表示最新使用
      
              if (this.map.size > this.capacity) {
                  // 这里有个知识点
                  // map的entries方法,还有keys方法(可以看mdn)),会返回一个迭代器
                  // 迭代器调用next也是顺序返回,所以返回第一个的值就是最老的,找到并删除即可
                  this.map.delete(this.map.entries().next().value[0])
              }
          }
      }
      
  • Review:

  • Tip:

  • Share:

第五十二周(2021.03.29-2021.04.04)

第五十三周(2021.04.05-2021.04.11)

第五十四周(2021.04.12-2021.04.18)

Search

    欢迎与我交流

    江南逰子

    Table of Contents