【学习打卡】第九天 数据结构和算法
2022/8/14 4:22:55
本文主要是介绍【学习打卡】第九天 数据结构和算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字典
字典是什么?
和集合类似,字典也是存储唯一值的数据结构,不同的是字典是以键值对的形式来存储;表示一种映射关系。
ES6中使用Map来表示字典。
基本用法
集合的Map的使用:
创建:new
,
是否存在:has
,
增:set
,
删除某个节点:delete
删除全部:clear
,
改:set
查:get
const map = new Map() // Map(0) {size: 0} map.set('a', 1) // Map(1) {'a' => 1} map.size // 1 map.has('a') // true map.set('a', 100) // Map(1) {'a' => 100} map.get('a') // 100 map.delete('a') // true map.clear() // undefined
使用场景
两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
上次使用Set的数据结构来实现;这次使用Map来实现
思路:
- 遍历数组nums1,以值为键,布尔值为值存储到Map中
- 遍历数组nums2,如果在Map中找到,就选出来,同时删除Map中的键,以防止出现重复的元素
var intersection = function(nums1, nums2) { const map = new Map(); nums1.forEach(item=> { map.set(item, true) }) const res = []; nums2.forEach(item => { if(map.get(item)){ res.push(item) map.delete(item) } }) return res; };
两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
var twoSum = function(nums, target) { const map = new Map(); for(let i=0; i<nums.length; i++) { let n = nums[i]; let n2 = target - n; if(map.has(n2)){ return [map.get(n2), i] }else{ map.set(n, i) } } };
这篇关于【学习打卡】第九天 数据结构和算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署
- 2024-04-14RAG应用开发实战02-相似性检索的关键 - Embedding
- 2024-04-14出海软件草根逆袭打法是什么?
- 2024-04-13鸿蒙原生应用再新丁!企查查 碧蓝航线 入局鸿蒙
- 2024-04-11RAG应用开发实战(01)-RAG应用框架和解析器
- 2024-04-10DevOps已死?2024年的DevOps将如何发展
- 2024-04-10码农必看:常见源代码混淆技术详解
- 2024-04-07以一当十丨TiDB 在东吴证券秀财 APP 的应用实践
- 2024-04-07月活超 1.1 亿,用户超 4 亿,你也在用的「知乎」是如何在超大规模 TiDB 集群上玩转多云多活的?来听听知乎代晓磊的答案!