两层for循环
// O(n^2)
const twoNum = function(nums,target){
for(let i =0;i<nums.length;i++){
for(let j=i+1 ;j<nums.length;j++){
if(nums[i]+nums[j]===target){
return[i,j]
}
}
}
}
双指针

// 当数组为有序的时候O(n)
const twoNum2 = function(nums,target){
let i = 0 // 头
let j = nums.length-1 // 尾
while (i<j){
const sum = nums[i]+nums[j]
if(sum>target){
j--
}else if(sum<target){
i++
}else{
return [i,j]
}
}
}
是一组键值对的结构,具有极快的查找速度。
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
初始化Map需要一个二维数组,或者直接初始化一个空Map。Map具有以下方法:
var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined
Set是一种叫做集合的数据结构,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。
要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set
var s1 = new Set(); // 空Set
var s2 = new Set([1, 2, 3]); // 含1, 2, 3
Set的属性:
Set的方法:
操作方法
遍历方法