单数组左右对撞指针
常用于翻转字符串、判断回文数/串
var fun = function(s) {
let l = 0;
let r = s.length - 1;
while(l <= r) {
// to do
l++;
r--;
}
return 结果;
};
map = {} 的计数功能
常用于1个字符串中的字符个数、判断2个字符串中字符个数是否相等(有效字母异位词)
var fun = function(s) {
let map = {};
for(let item of s){
map[item] = (map[item] || 0) + 1;
或
map[item] ? map[item]++ : map[item] = 1;
有增加就有减少
map[item] ? map[item]-- : map[item] = -1;
}
return 结果;
};
map = {} 的判断重复功能
只单纯判断是否重复,不做具体个数判断
首次循环先赋值、再判断
常用于判断数组是否有重复项、两数之和、两个数组的交集等问题
var fun = function(nums) {
let map = {};
for(let item of nums) {
if(map[item]) {
return 重复了,返回结果;
}
map[item] = true;
}
return 没有重复,返回结果;
};
未完待续