力扣(代码随想录)哈希表篇

61 阅读1分钟

哈希表

一般哈希表都是用来快速判断一个元素是否出现集合里。

  1. 三种哈希结构
  • 数组
  • set (集合)
  • map(映射)

有效字母异位词

  1. 定义数组
 let table=new Array(26).fill(0)
  1. 哈希传值
table[s.codePointAt(i)-'a'.codePointAt(0)]

s.codePointAt(i) 返回给定字符串 s 在位置 i 处字符的 Unicode 码点,而 'a'.codePointAt(0) 返回字符 'a' 的 Unicode 码点。然后,这两个码点相减,将结果用作数组的索引。

两个数组的交集

  1. 输出结果中的每个元素一定是唯一的
  2. 数据数量未知,因此采用set
  3. 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,然后左右开始向中间逼近