哈希表
一般哈希表都是用来快速判断一个元素是否出现集合里。
- 三种哈希结构
- 数组
- set (集合)
- map(映射)
有效字母异位词
- 定义数组
let table=new Array(26).fill(0)
- 哈希传值
table[s.codePointAt(i)-'a'.codePointAt(0)]
s.codePointAt(i) 返回给定字符串 s 在位置 i 处字符的 Unicode 码点,而 'a'.codePointAt(0) 返回字符 'a' 的 Unicode 码点。然后,这两个码点相减,将结果用作数组的索引。
两个数组的交集
- 输出结果中的每个元素一定是唯一的
- 数据数量未知,因此采用set
- Array.from()
Array.from是 JavaScript 中一个用于从类似数组或可迭代对象创建新数组的静态方法。
// 类似数组对象
let arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 };
let newArray = Array.from(arrayLike);
console.log(newArray); // ['a', 'b', 'c']
// 可迭代对象
let iterableString = 'hello';
let charArray = Array.from(iterableString);
console.log(charArray); // ['h', 'e', 'l', 'l', 'o']
快乐数
1.取余操作:使用 % 运算符:
let remainder = 10 % 3; // remainder 等于 1
2.set中添加元素:add() 方法
// 创建一个空的 Set
let mySet = new Set();
// 添加元素到 Set
mySet.add(1);
mySet.add(2);
mySet.add('Hello');
mySet.add({ key: 'value' });
// 检查 Set 的内容
console.log(mySet); // 输出: Set { 1, 2, 'Hello', { key: 'value' } }
两数之和
1.需要使用 key value结构来存放,key来存元素,value来存下标,那么使用map正合适。
四数之和
1.定义哈希函数
创建一个空的 Map let hash = new Map();
2.获取指定键对应的值
hash.get(target)
三数之和
1.先对数据进行升序排列
nums.sort((a, b) => a - b)
2.定义第一个数据n=0,然后左右开始向中间逼近