康复训练part4
1.哈希表理论基础哈希表一般用来快速判断一个元素是否在集合里时间复杂度相比遍历O(n)只有O(1)1.哈希函数例如要判断一个学生是否在某个学校就读只需要把这所学校中学生的名字(键)都存在哈希表里而要将学生姓名都映射在哈希表里就要用到哈希函数。简单来说也就是初始输入(键)-哈希函数-哈希值那如果直接把哈希值当做下标如果哈希值很大直接超出哈希表容量了所以这里会再次对数值进行取模操作得到最终下标(桶索引)2.哈希碰撞如果学生数实在太多超出了哈希表容量必然会有两个不同名字对应同一个桶索引的情况这叫做哈希碰撞解决方法哈希碰撞有两种解决方法1.拉链法2.线性探测法这里一定要保证tablesize大于datasize3.常见的三种哈希结构数组set(集合)map(映射)2.哈希法242. 有效的字母异位词 - 力扣LeetCodeclass Solution { public: bool isAnagram(string s, string t) { int record[26]{0}; for(char c:s) { record[c-a]; } for(char c:t) { record[c-a]--; } for(int i0;i26;i) { if(record[i]!0) { return false; } } return true; } };主要还是体会那种元素去映射下标的思想349. 两个数组的交集 - 力扣LeetCodeclass Solution { public: vectorint intersection(vectorint nums1, vectorint nums2) { unordered_setintresult_set; unordered_setintset1(nums1.begin(),nums1.end()); for(int num:nums2){ if(set1.find(num)!set1.end()) { result_set.insert(num); } } return vectorint(result_set.begin(),result_set.end()); } };这里用unordered_set进行去重,注意最后要把set转换成vector202. 快乐数 - 力扣LeetCodeclass Solution { public: int getsum(int num) { int sum0; while(num){ int tmpnum%10; sumsumtmp*tmp; num/10; } return sum; } bool isHappy(int n) { unordered_setintresult_set; while(1){ int sumgetsum(n); if(sum1){ return true; } if(result_set.find(sum)!result_set.end()) { return false; }else{ result_set.insert(sum); } nsum; } } };通过无序集合判断sum是否重复1. 两数之和 - 力扣LeetCodeclass Solution { public: vectorint twoSum(vectorint nums, int target) { unordered_mapint,intmap; for(int i0;inums.size();i) { auto itmap.find(target-nums[i]); if(it!map.end()) { return {it-second,i}; }else{ map.insert(pairint,int(nums[i],i)); } } return {}; } };454. 四数相加 II - 力扣LeetCodeclass Solution { public: int fourSumCount(vectorint nums1, vectorint nums2, vectorint nums3, vectorint nums4) { unordered_mapint,intmap; for(int num1:nums1) { for(int num2:nums2) { map[num1num2]; } } int cnt0; for(int num3:nums3) { for(int num4:nums4) { auto itmap.find(0-num3-num4); if(it!map.end()) { cntmap[0-num3-num4]; } } } return cnt; } };15. 三数之和 - 力扣LeetCodeclass Solution { public: vectorvectorint threeSum(vectorint nums) { sort(nums.begin(),nums.end()); vectorvectorintresult; for(int i0;inums.size();i) { if(nums[i]0) { return result; } if(i0nums[i]nums[i-1]) { continue; } int lefti1; int rightnums.size()-1; while(leftright) { if(nums[i]nums[left]nums[right]0){ right--; }else if(nums[i]nums[left]nums[right]0){ left; }else{ result.push_back(vectorint{nums[i],nums[left],nums[right]}); while(leftrightnums[left]nums[left1]){ left; } while(leftrightnums[right]nums[right-1]) { right--; } right--; left; } } } return result; } };18. 四数之和 - 力扣LeetCodeclass Solution { public: vectorvectorint fourSum(vectorint nums, int target) { vectorvectorintresult; sort(nums.begin(),nums.end()); for(int i0;inums.size();i) { if(nums[i]0nums[i]target) { break; } if(i0nums[i]nums[i-1]){ continue; } for(int ji1;jnums.size();j) { if(nums[i]nums[j]targetnums[i]nums[j]0){ break; } if(ji1nums[j]nums[j-1]){ continue; } int leftj1; int rightnums.size()-1; while(leftright){ if((long)nums[i]nums[j]nums[left]nums[right]target){ right--; } else if((long)nums[i]nums[j]nums[left]nums[right]target){ left; } else{ result.push_back({nums[i],nums[j],nums[left],nums[right]}); while(leftrightnums[left]nums[left1]){ left; } while(leftrightnums[right]nums[right-1]){ right--; } left; right--; } } } } return result; } };

相关新闻

成都世迅网站建设怎么做到又稳又快且成本低?成都世迅网站建设靠谱吗?揭秘企业官网背后的逻辑与真相

成都世迅网站建设怎么做到又稳又快且成本低?成都世迅网站建设靠谱吗?揭秘企业官网背后的逻辑与真相

在这个数字化浪潮席卷全球的时代,如果你还认为企业拥有一个官网只是“锦上添花”的小事,那我只能遗憾地告诉你,你可能正在亲手关掉自己企业通往未来的大门。今天咱们不聊那些高大上却空洞无物的商业术语,我就作为一个在互联网行业摸爬滚打多年的老兵,跟你掏心窝子聊聊一件…

2026/8/15 16:53:49 阅读更多 →
智慧园区怎么建?有哪些?附典型案例-数美信息

智慧园区怎么建?有哪些?附典型案例-数美信息

如何通过科学的产业规划、高效的产业招商以及先进的数字化智慧化运营,实现园区的可持续发展与竞争力提升,正成为众多园区关注的焦点。数美信息凭借在园区产业数字化领域的深厚积淀与创新实践,业务覆盖1余省市,成功打造了200余案例…

2026/8/14 14:43:15 阅读更多 →
基于ISL81601的100W升降压电路设计问题复盘(三)

基于ISL81601的100W升降压电路设计问题复盘(三)

概述前两天问题复盘记录了硬件调试与参数计算,这篇文章讲解基于ISL81601的升降压电路在PCB绘制过程中遇到的难点包括接地与回流、功率回路、电流采样、栅极驱动、布局隔离与工艺等,以及下一版改进方案。在讲解中所用的PCB图例都使用改版后的新版进行说明…

2026/8/14 14:42:15 阅读更多 →

最新新闻

NXLoader 完整上手指南:如何用安卓手机 5 分钟启动 Switch 自制系统,无需 Root 无需电脑

NXLoader 完整上手指南:如何用安卓手机 5 分钟启动 Switch 自制系统,无需 Root 无需电脑

NXLoader 完整上手指南:如何用安卓手机 5 分钟启动 Switch 自制系统,无需 Root 无需电脑 【免费下载链接】NXLoader My first Android app: Launch Fuse Gele payloads from stock Android (CVE-2018-6242) 项目地址: https://gitcode.com/gh_mirrors/…

2026/8/15 17:41:17 阅读更多 →
【开源工具】BlueKing Lite —— AI 原生的轻量运维平台(三)

【开源工具】BlueKing Lite —— AI 原生的轻量运维平台(三)

📊 质量保障体系 BlueKing Lite 拥有严格的测试覆盖率和质量保障体系: 测试覆盖率总览📈 全量统计:26,255 passed、0 failed、0 errors 📊 严格业务源码覆盖率:82.66%(排除 tests/、migrations/…

2026/8/15 17:41:17 阅读更多 →
三步上手Prism Launcher离线启动器,无账号也能畅玩Minecraft

三步上手Prism Launcher离线启动器,无账号也能畅玩Minecraft

三步上手Prism Launcher离线启动器,无账号也能畅玩Minecraft 【免费下载链接】PrismLauncher-Cracked This project is a Fork of Prism Launcher, which aims to unblock the use of Offline Accounts, disabling the restriction of having a functional Online A…

2026/8/15 17:41:17 阅读更多 →
3分钟搞定:用WinDiskWriter在Mac上制作Windows启动盘的免费指南

3分钟搞定:用WinDiskWriter在Mac上制作Windows启动盘的免费指南

3分钟搞定:用WinDiskWriter在Mac上制作Windows启动盘的免费指南 【免费下载链接】WinDiskWriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI &…

2026/8/15 17:41:17 阅读更多 →
猫抓资源嗅探扩展完整指南:网页视频、音频与流媒体一键捕获的简单方法

猫抓资源嗅探扩展完整指南:网页视频、音频与流媒体一键捕获的简单方法

猫抓资源嗅探扩展完整指南:网页视频、音频与流媒体一键捕获的简单方法 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff08…

2026/8/15 17:41:17 阅读更多 →
给自己的网络生活装个“自动挡“:Huginn开源自动化平台快速上手指南

给自己的网络生活装个“自动挡“:Huginn开源自动化平台快速上手指南

给自己的网络生活装个"自动挡":Huginn开源自动化平台快速上手指南 【免费下载链接】huginn Create agents that monitor and act on your behalf. Your agents are standing by! 项目地址: https://gitcode.com/gh_mirrors/hu/huginn Huginn 是一个…

2026/8/15 17:40:17 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址:本地PC端运行(或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时,传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品(FMCG)是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中,往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统(WMS)与制造业、电商行业存在明显区别:它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/15 12:59:14 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →