当前位置: 首页 > news >正文

第三章 哈希表part02

2026.02.03 第七天

454 四数相加||

本题首先要理解题意,知道构成元组的四个数中只要有一个的下标跟之前的元祖不重复即可。

由于存在四个数组,暴力遍历复杂度太高,从而想到能否降维,将前两个数组和后两个数组元素相加,使用unordered_map记录相加得到的值和对应值出现的次数,得到两个map,就成功将问题转化为力扣第一题两数之和的问题(此处和为0),从而顺利求解。

303 赎金信

解题思路与异位词基本一致

首先本题只涉及26个小写字母,那么我们可以定义一个长度为26的数组作为map来存储magazine中字符出现过的次数,同时借助数组的特点极大提高查询速度,哈希映射关系就是字母的自然排序从0-25,

而后遍历ransomNote,消费magazine积累下来的字符,最后遍历数组,出现负数说明字符不够用,返回false,反之返回true。

本题可以将遍历两个字符串放在同一个循环里从而提高代码运行速度,具体代码如下:

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {if (ransomNote.size() > magazine.size()) {return false;}int hash[26] = {0};for (int i = 0; i < magazine.size(); i++) {hash[magazine[i] - 'a']++;if (i < ransomNote.size()) {hash[ransomNote[i] - 'a']--;}}for (int i = 0; i < 26; i++) {if (hash[i] < 0) {return false;}}return true;}
};

15 三数之和

梦破碎的地方~

本题中数组元素下标不能重复,三元组不能重复,但是同一个元素可以出现在多个不同的三元组中

如何实现三元组不重复和下标不重复呢?考虑进行排序从而方便去重。接着使用双指针进行元素查找

拿这个nums数组来举例,首先将数组排序,然后有一层for循环,i从下标0的地方开始,同时定一个下标left 定义在i+1的位置上,定义下标right 在数组结尾的位置上。

依然还是在数组中找到 abc 使得a + b +c =0,我们这里相当于 a = nums[i],b = nums[left],c = nums[right]。

接下来如何移动left和right呢, 如果nums[i] + nums[left] + nums[right] > 0 就说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。

如果 nums[i] + nums[left] + nums[right] < 0 说明 此时 三数之和小了,left 就向右移动,才能让三数之和大一些,直到left与right相遇为止。

时间复杂度:O(n^2)。

https://file1.kamacoder.com/i/algo/15.三数之和.gif

我们要做的是 不能有重复的三元组,但三元组内的元素是可以重复的!要实现这一点只需要每次移动a使之与前一次不同即可。

18 四数之和

大道至简,在上一题的基础上套一层循环即可,不知道有没有更加简洁优美的解决方法~

要注意剪枝和本题中n可能是负数,导致两个数相加变小而不是变大。

http://www.jsqmd.com/news/337962/

相关文章:

  • 课程论文写得像 “流水账”?虎贲等考 AI:3 步写出 “导师眼前一亮” 的学术感
  • Git Clone
  • 问卷设计 “人工 vs AI” 大 PK:虎贲等考 AI 让 “无效调研” 变 “数据金矿”,效率翻倍!
  • 2026年山东泓皓加盟公司推荐:泓皓保障/泓皓物流调度/ 泓皓物流/物流服务平台/全国城配运输精选 - 品牌推荐官
  • 2025年第二季度移动网络威胁深度解析:银行木马持续肆虐,新型间谍软件浮现
  • 濮阳英语雅思培训机构推荐.2026权威测评出国雅思辅导机构口碑榜 - 苏木2025
  • 现象级产品OpenClaw创建者:80%手机App会被吃掉!自曝“扩充军团”的秘法:逆向三方API!称长时程Agent不过是虚荣指标,不相信复杂编排!
  • react更改多层对象变量的方法 - ฅ˙
  • 新一代金融终端-FinceptTerminal(THS)
  • 焦作英语雅思培训机构推荐。2026权威测评出国雅思辅导机构口碑榜 - 苏木2025
  • 深圳赛诺杰与西安电子科技大学签约——共建大湾区智慧交通研究中心 - 品牌企业推荐师(官方)
  • 完全取代Claude Code?OpenAI反击来了,推出Codex app「限时免费使用」
  • Java面向对象——回顾方法的定义,调用
  • 2026年LED显示屏厂家实力推荐:湖南彩艺光电,LED室内外全彩/租赁/机械创意/柔性/户外全彩屏全系供应,适配舞台租赁/商显/创意多场景 - 品牌推荐官
  • 艾体宝干货 | 多模型数据库解决的到底是什么问题?
  • 濮阳英语雅思培训机构推荐。2026权威测评出国雅思辅导机构口碑榜 - 苏木2025
  • 焦作英语雅思培训机构推荐、2026权威测评出国雅思辅导机构口碑榜 - 苏木2025
  • 2026如何选择GEO服务商?3大核心指标+全流程避坑指南 - 品牌2025
  • 2026最新园林景观服务商/设计公司TOP5评测!三维服务体系+全周期解决方案权威榜单发布,赋能市政/道路/园区/厂区空间升级 - 品牌推荐2026
  • 2026国内外仿真软件对比分析:国产替代方案推荐 - 品牌2025
  • Linux驱动开发:内核模块与普通应用的区别
  • 鹤壁英语雅思培训机构推荐;2026权威测评出国雅思辅导机构口碑榜 - 苏木2025
  • 量子主成分分析(QPCA):微算法科技(NASDAQ :MLGO)重构图像降维与特征提取的技术
  • node: nvm方式安装node
  • 焦作英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜 - 苏木2025
  • 2026年品牌营销策划公司推荐:基于多场景实效评测,解决中小企业增长与品牌痛点 - 品牌推荐
  • 核心期刊录用率翻倍?虎贲等考 AI:期刊论文从选题到见刊的 “学术加速器”
  • MySQL9.6.0 ZIP安装 windows11 家庭版
  • 2026最新景观设计服务商/公司TOP5评测!三维服务体系+全周期解决方案权威榜单发布,赋能市政/道路/园区/厂区/露台花园/学校场景升级 - 品牌推荐2026
  • AI 写论文哪个软件最好?实测后:虎贲等考 AI 凭 “学术闭环” 赢麻了!