/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
// 暴力法
for(let i=0;i<nums.length-1;i++){
for(let j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
return [i,j]
}
}
}
};
看了一些题解
用空间换时间,利用哈希表来解题
/**
* @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++){
map.set(nums[i],i);
}
for(let i=0;i<nums.length;i++){
var numNeed = target-nums[i];
if(map.has(numNeed) && map.get(numNeed)!=i){
return [i,map.get(numNeed)]
}
}
};
巩固一下map的知识,链接在这Map - JavaScript | MDN (mozilla.org)
map.clear() 清空map里的所有键值对
map.has(key) 判断map中是否有该key,返回值 true|false
map.set(key,value) 存值
map.get(key) 获取该key对应的value
map.size 获取map的大小
map.delete(key) 删除
map.entries()
const map1 = new Map();
map1.set('0', 'foo');
map1.set(1, 'bar');
const iterator1 = map1.entries();
console.log(iterator1.next().value);
// expected output: ["0", "foo"]
console.log(iterator1.next().value);
// expected output: [1, "bar"]
map.forEach()
function logMapElements(value, key, map) {
console.log(`m[${key}] = ${value}`);
}
new Map([['foo', 3], ['bar', {}], ['baz', undefined]])
.forEach(logMapElements);
// expected output: "m[foo] = 3"
// expected output: "m[bar] = [object Object]"
// expected output: "m[baz] = undefined"
map.keys()
const map1 = new Map();
map1.set('0', 'foo');
map1.set(1, 'bar');
const iterator1 = map1.keys();
console.log(iterator1.next().value);
// expected output: "0"
console.log(iterator1.next().value);
// expected output: 1
map.values()
const map1 = new Map();
map1.set('0', 'foo');
map1.set(1, 'bar');
const iterator1 = map1.values();
console.log(iterator1.next().value);
// expected output: "foo"
console.log(iterator1.next().value);
// expected output: "bar"