×

未命名

【刷题day7】哈希表 | 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和、总结

wangxixigz wangxixigz 发表于2024-06-26 浏览5463 评论0
454.四数相加II 题目链接文章讲解 思路: 参考两数之和的思想,将ABCD分为两组,用map记录AB组各个元素之和(键)以及出现此和的情况个数(值),再分别求CD两数组中各个元素的和,并且在map中找 -(C+D) 的值及其情况个数,累加便可以得到最终结果。 与两(三、四)数之和不同的是,这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用像在一个数组上那样考虑重复的四个元素相加等于0的情况。 class Solutio

未命名

⌈C⌋哈希表UT_hash_handle——如何将结构体类型作为key

??? ??? 发表于2024-06-25 浏览5681 评论0
目录 前言 一、创建结构体 二、定义哈希表指针 三、函数操作 1. HASH_ADD 2. HASH_FIND 四、运用 剑指 Offer 52. 两个链表的第一个公共节点  两数之和 692. 前K个高频单词 前言 很早之前,在我刷leetcode的时候遇见使用哈希表的题目,我怀着好奇心去搜索,发现C语言可以用数组简单模拟(但是key值超过数组最大范围那就不行了),但是写了一篇关于简单哈希表运用的文章  数组模拟哈希表的简单运

未命名

js数据结构与算法(栈-队列-单/双向链表-集合-字典-哈希表-二叉树-红黑树-图-常见排序算法)

访客 访客 发表于2024-06-20 浏览6217 评论0
1.栈 描述:栈先进后出,相当于数组的倒序输出,栈顶就是最后一个元素,栈尾就是第一个元素 1.1 栈的封装 // 栈类 function Stack() { // 栈中的属性 this.items = [] // 栈相关的方法 // 压栈操作 Stack.prototype.push = function (element) { this.items.push(element) } // 出栈操作

未命名

简述哈希表

牙郎 牙郎 发表于2024-06-19 浏览4680 评论0
目录 一、什么是哈希表? 二、哈希表的特点 三、哈希表的实现过程         a.计算新增元素的哈希值         b.通过hash%数组长度,确定新增元素在数组中的索引值         c.如果该位置为null,则直接加           如果该位置不为null, 四、哈希表是如何存储和读取数据的 五、哈希冲突 六、怎么解决哈希冲突【常见方法】 1、数组+链表 2、数组+红黑树 六、哈希表的扩容情况         什么情况下会扩容:        

未命名

【算法基础9】c/c++中如何构建哈希表?字符串哈希其实很简单

访客 访客 发表于2024-06-13 浏览4363 评论0
一、构建哈希表的基本思路         哈希表主要是为了将较大范围的数映射到一个较小的范围,与离散化有些类似,但离散化映射后的数仍然保持数与数之间的顺序,而哈希表中数的顺序是打乱的。哈希表的映射方法主要是将大范围的数对N取模,但可能存在多个数取模后的值相同,这样就产生了冲突。为了减少冲突,N通常取质数,根据解决冲突的方式不同,哈希表的构建又分拉链法和开放寻址法两种。                查找第一个大于N的质数: //为了减少冲突,求哈希取模的数最好是质数 int prime