为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第10天 数据结构之“字典”

标签:
JavaScript

课程名称:JavaScript版数据结构与算法
课程章节:第7章 数据结构之“字典”
主讲老师:lewis

课程内容:

今天学习的内容包括:
7-4 LeetCode:1. 两数之和——计算数组中和为目标值且唯一,返回下标。
7-5 LeetCode:3. 无重复字符的最长子串——找出字符串中不含有重复字符的 最长子串。
7-6 LeetCode:76. 最小覆盖子串——找出A字符串中含有B字符串的最小覆盖子串。
7-7 字典-章节总结——字典的含义,常用语法,ES6中的Map。
7-8 【勤于思考,夯实学习成果】阶段思考题——完成对应作业。

课程收获:

两数之和

1、给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标
2、通过使用字典,查找是否有满足的对应数值,然后返回

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    const map = new Map()
    for(let i=0;i<nums.length;i++){
        const n = nums[i]
        const n2 = target - n
        if(map.has(n2)){
            return [map.get(n2),i]
        }else{
            map.set(n,i)
        }
    }
};

无重复字符的最长子串

1、给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度
2、设置两个指针,一左一右,右指针遇到重复则左指针移动一位,得到最长子串

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let l = 0
    let res = 0
    const map = new Map()
    for(let r = 0;r<s.length;r++){
        if(map.has(s[r]) && map.get(s[r]) >= l){
            l = map.get(s[r]) + 1
        }
        res = Math.max(res,r-l+1);
        map.set(s[r],r)
    }
    return res
};

最小覆盖子串

1、返回 s 中涵盖 t 所有字符的最小子串
2、通过多次循环处理,得到对应的最小子串

阶段思考题

1、实际工作中使用字典

 <el-menu-item v-for="(item1, index1) in item[children]" :key="index1" :index="item1.index">
          <component v-if="item1[icon]" :is="`el-icon-${toLine(item1[icon])}`"></component>
          <span>{{ item1[name] }}</span>
        </el-menu-item>

 name: {
    type: String,
    default: 'name'
  },
  // 菜单标识的键名
  index: {
    type: String,
    default: 'index'
  },

2、测试 Map 和 Object 频繁增删操作的性能,谁高谁低

10万数据量下,Obj都要优于Map
obj add: 4.623ms
map add: 10.539ms
obj get: 1.794ms
map get: 5.843ms
obj delete: 7.223ms
map delete: 9.386ms

通过对字典的学习,感觉到了算法的魅力,也感受到了无情的打击,希望自己慢慢成长吧,算法很强大,对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

​​​https://img3.sycdn.imooc.com/62f7b11b0001a3e019200892.jpg

https://img1.sycdn.imooc.com/62f7b47d00017fa119200892.jpg

https://img3.sycdn.imooc.com/62f7b9dd0001b6cd19200892.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消