当前位置: 首页 > Web前端 > JavaScript

JavaScript刷LeetCode,拿offer-js版词典_0

时间:2023-03-27 18:17:53 JavaScript

1。字典的引入类似于集合。字典也是一种存储唯一值的数据结构,只不过是以键值对的形式存储的。ES6Map1.1字典常用操作constm=newMap();//addm.set('a','aa');m.set('b','bb');//删除m.delete('b');m.clear();//改为m.set('a','aaa')//检查m.get('a');2.LeetCode:349.两个数组的交集2.1解题思路找到nums1和nums2都有的值,用字典建立映射关系,记录nums1中的值,遍历nums2,找到out出同样在nums1中的值2.2解题步骤新建字典,遍历nums1,填充字典遍历nums2,遇到字典中的值选择,从字典中删除。/***@param{number[]}nums1*@param{number[]}nums2*@return{number[]}*/varintersection=function(nums1,nums2){//集合集合实际方法//return[...newSet(nums1)].filter(item=>nums2.includes(item))constmap=newMap();nums1.forEach(n=>{map.set(n,true)})constres=[];nums2.forEach(n=>{if(map.get(n)){res.push(n);map.delete(n);}})returnres};3.力扣:20.有效的号码/***@param{string}s*@return{boolean}*/varisValid=function(s){if(s.length%2===1){returnfalse}conststack=[];constmap=newMap();map.set('(',')')map.set('[',']')map.set('{','}')for(leti=0;i=l){l=map.get(s[r])+1;}res=Math.max(res,r-l+1)map.set(s[r],r)}returnres;};时间复杂度O(n)空间复杂度O(m)6.LeetCode:76.MinimumCoveringSubstring6.1题目描述6.2解题思路先找出所有包含T的子串,找到长度最小的子串,返回即可6.3问题-解决步骤使用双指针维护一个滑动窗口。移动右指针找到包含T的子串,移动左指针最小化包含T的子串的长度。6.3代码实现/***@param{string}s*@param{string}t*@return{string}*/varminWindow=function(s,t){letl=0;让r=0;const需要=newMap();for(letcoft){need.set(c,need.has(c)?need.get(c)+1:1)}letneedType=need.size;让res='';while(r