242. 有效的字母异位词
242. 有效的字母异位词
var isAnagram = function(s, t) {
const sMap = getMap(s);
const tMap = getMap(t);
if (sMap.size !== tMap.size) {
return false;
}
for (const key of sMap.keys()) {
const sValue = sMap.get(key);
const tValue = tMap.get(key);
if (sValue !== tValue) {
return false;
}
}
return true;
};
function getMap(str) {
let map = new Map();
for (let i = 0; i < str.length; i++) {
let char = str[i];
if (map.has(char)) {
const times = map.get(char);
map.set(char, times + 1);
} else {
map.set(char, 1);
}
}
return map;
}
349. 两个数组的交集
349. 两个数组的交集
var intersection = function(nums1, nums2) {
const set1 = new Set(nums1);
let res = new Set();
for (let i = 0; i < nums2.length; i++) {
let tar = nums2[i];
if (set1.has(tar)) {
res.add(tar);
}
}
let arr = Array.from(res);
return arr;
};
202. 快乐数
202. 快乐数
var isHappy = function(n) {
let set = new Set();
let num = n;
while(1) {
let sum = getSum(num);
if (sum === 1) {
return true;
} else if (set.has(sum)) {
return false;
} else {
set.add(sum);
}
num = sum;
}
return false;
};
function getSum(n) {
let sum = 0;
let num = n;
while(num) {
sum += Math.floor(num % 10) ** 2
num = Math.floor(num / 10)
}
return sum;
}
1. 两数之和
1. 两数之和
var twoSum = function(nums, target) {
let map = new Map();
for (let i = 0; i < nums.length; i++) {
let record = map.get(nums[i]);
if (record !== undefined) {
return [i, record];
} else {
let minus = target - nums[i];
map.set(minus, i)
}
}
return [];
};