数据结构与算法--字典

203 阅读1分钟

什么是字典

字典与集合类似,字典也是一种存储唯一值的数据结构,但是它是以键值对的形式存储。

ES6中有字典,名为Map。字典常用操作:键值对的增删改查

let m = new Map();

//增
m.set('a', 'aa');
m.set('b', 'bb');

//删
m.delete('a');
m.clear();

//改
m.set('2020-10-12', '12');
m.set('2020-10-11', '11');

//查
m.get('a');

//遍历
for(let key of m.keys()){
    console.log(key);
}

for (let value of m.values()) {
    console.log(value);
}

for (let [key,value] of m.entries()) {
    console.log(key, value);
}

应用

1、两个数组的交集(力扣349)

var intersection = function(nums1, nums2) {
    let map = new Map();
    let res = [];

    nums1.forEach(n => {
        map.set(n, true);
    });
    nums2.forEach(n => {
        if(map.get(n)){
            res.push(n);
            map.delete(n);
        }
    })
    return res;
};

2、两数之和(力扣1)

时间复杂度O(n)

空间复杂度O(n)

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    let map = new Map();

    for(let i = 0; i < nums.length; i++){
        let n = target - nums[i];
        if(map.has(n)){
            return [map.get(n), i];
        }
        map.set(nums[i], i);
    }
    return []
};

知识来源: coding.imooc.com/learn/list/…