| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 代码随想录第六天|第三章 哈希表II -> 正文阅读 |
|
[数据结构与算法]代码随想录第六天|第三章 哈希表II |
#Java、#哈希表、#数组、#双指针 一、今日学习链接 ? ? ? ? 2、454. 四数相加II,文章链接,视频链接 ? ? ? ? 3、383. 赎金信,文章链接 二、理论知识 ????????一般来说哈希表都是用来快速判断一个元素是否出现集合里。 ????????对于哈希表,要知道哈希函数和哈希碰撞在哈希表中的作用. ????????哈希函数是把传入的key映射到符号表的索引上。 ????????哈希碰撞处理有多个key映射到相同索引上时的情景,处理碰撞的普遍方式是拉链法和线性探测法。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????接下来是常见的三种哈希结构:
? ? ? ? 数组作为哈希表:383.赎金信。使用map的空间消耗要比数组大一些,因为map要维护红黑树或者符号表,而且还要做哈希函数的运算。所以数组更加简单直接有效!
三、解题思路
四、总结 ? ? ? ? 1、数组也可以用来保存、记录信息,例如LeetCode第383题、第395题。 ? ? ? ? 2、3 sum, 4 sum题型有模板: ? ? ? ? ? ? ? ? 1)Arrays.sort(nums); ? ? ? ? ? ? ? ? 2)去重:if (i > 0 && nums[i] == nums[i - 1]) {continue;} ????????????????????????while (right > left && nums[right] == nums[right - 1]) right--; ? ? ? ? ? ? ? ? 3)left, right->while (left < right){} ? ? ? ? ? ? ? ? 4)主逻辑:sum < target, sum > target, sum == target ? ? ? ? ? ? ? ? 5)Arrays.asList(); ???????????????????????result.add(Arrays.asList(nums[i], nums[left], nums[right])); ? ? ? ? 3、4 sum II:map对两组数组的统计(个数),if(map.containsKey(0-temp)) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 1:58:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |