C++ 使用map,set 重实现链表算法题
📅 2026/8/3 4:01:30
👁️ 次浏览
1.两个数组的交集给定两个数组nums1和nums2返回它们的 交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。psset可直接去重class Solution { public: vectorint intersection(vectorint nums1, vectorint nums2) { setint s1(nums1.begin(),nums1.end()); setint s2(nums2.begin(),nums2.end()); vectorint v; auto it1 s1.begin(); auto it2 s2.begin(); while(it1!s1.end() it2!s2.end()) { if(*it1*it2) it1; else if(*it1*it2) it2; else if(*it1*it2) { v.push_back(*it1); it1; it2; } } return v; } };2.带环链表给定一个链表的头节点head返回链表开始入环的第一个节点。如果链表无环则返回null。如果链表中有某个节点可以通过连续跟踪next指针再次到达则链表中存在环。 为了表示给定链表中的环评测系统内部使用整数pos来表示链表尾连接到链表中的位置索引从 0 开始。如果pos是-1则在该链表中没有环。注意pos不作为参数进行传递仅仅是为了标识链表的实际情况。eg输入head [3,2,0,-4], pos 1输出返回索引为 1 的链表节点解释链表中有一个环其尾部连接到第二个节点。class Solution { public: ListNode *detectCycle(ListNode *head) { setListNode* s; ListNode* cur head; while(cur) { auto ret s.insert(cur); if(ret.second false) { return cur; } cur cur-next; } return nullptr; } };思路1.将链表节点的地址存入set中使用set特性若插入值已存在则插入失败2.insert返回类型为pair迭代器bool 即 插入成功返回新插入节点地址true插入失败返回已存在的节点的地址false3.若ret.second false说明该地址节点已经存在插入失败为带环链表若ret.second true说明该节点与之前节点并不重复若该情况直至结束则说明该链表不为带环链表3.随机链表复制class Solution { public: Node* copyRandomList(Node* head) { mapNode*,Node* nodeMap; Node* copyhead nullptr; Node* copytail nullptr; Node* cur head; while(cur) { if(copytail nullptr) { copyhead copytail new Node(cur-val); } else { copytail-next new Node(cur-val); copytail copytail-next; } nodeMap[cur] copytail; cur cur-next; } Node* copy copyhead; cur head; while(cur) { if(cur-random nullptr) { copy-random nullptr; } else { copy-random nodeMap[cur-random]; } cur cur-next; copy copy-next; } return copyhead; } };思路1.nodeMap[cur] copytail; 利用map的kv结构建立映射2.copy-random nodeMap[cur-random];即用cur-random当nodeMap的key查找出来的val赋给copy的random从而实现随机链表的赋值。4.前k个高频词class Solution { public: struct Compare { bool operator()(const pairstring,int x,const pairstring,int y) { return x.secondy.second || ((x.secondy.second) x.firsty.first); } }; vectorstring topKFrequent(vectorstring words, int k) { mapstring,int countmap; for(auto e:words) { countmap[e]; } vectorpairstring,int v(countmap.begin(),countmap.end()); sort(v.begin(),v.end(),Compare()); vectorstring strv; for(int i 0;ik;i) { strv.push_back(v[i].first); } return strv; } };
添加椒盐噪声与均值滤波去噪
一、前言
在实际图像采集过程中,由于设备、环境等因素影响,图像中经常会出现噪声。
常见噪声包括:
椒盐噪声(Salt and Pepper Noise)高斯噪声均匀噪声
其中椒盐噪声表现为图像中随机出现的…
📅 2026/8/3 4:00:30
1. 项目概述与核心价值最近在准备华为OD机试的同学们,应该都感受到了B卷题目那种“接地气”又“暗藏玄机”的风格。它不像A卷那样直来直去考基础语法,也不像C卷那样可能涉及更复杂的系统设计,B卷的题目往往是一个个具体的、生活化的场景&…
📅 2026/8/3 4:00:30
做ToB机械设备的企业主,对百度竞价可以说是又爱又恨。爱的是它确实能带来精准询盘,恨的是账户交给代运营后,钱花得飞快,销售手里却没几条像样的线索。选错服务商,轻则白烧半年推广费,重则账户被玩坏、品牌口…
📅 2026/8/3 4:00:30
视频链接:Laguna-s-2.1又来一个118B,DGX Spark 走起,但一言难尽_哔哩哔哩_bilibili
用了接近两周的ornith:35B,怎么说,速度可以,但完成复杂任务就不行了,反反复复,确实不如大参数量…
📅 2026/8/3 4:49:54
1. 项目概述:GEE数据流转中的“拦路虎”如果你正在使用Google Earth Engine(GEE)进行遥感数据处理,那么“上传”和“导出”这两个动作,几乎是你工作流中无法绕开的环节。无论是将本地的矢量、栅格数据上传到云端资产&a…
📅 2026/8/3 4:49:54
1. Go语言数组基础解析在Go语言中,数组是最基础的数据结构之一,它代表了一段固定长度的、相同类型元素的连续内存空间。与切片(slice)不同,数组的长度是其类型的一部分,这意味着[5]int和[10]int是完全不同的两种类型。这种设计带来…
📅 2026/8/3 4:49:54
更多请点击:
https://kaifayun.com
第一章:AI项目启动前必须回答的4个灵魂拷问(附Gartner 2024验证框架),错过重复踩坑300工时
问题一:你的数据真的“就绪”了吗? Gartner 2024《AI Readiness…
📅 2026/8/3 4:48:53
上周,一个刚转行做数据分析的朋友深夜发来消息,语气里满是困惑和疲惫:“我照着教程,把Python、Pandas、SQL都学了一遍,项目也做了几个,可一进公司,面对一堆没清洗过的业务数据,还是不…
📅 2026/8/3 4:48:53
1. 项目概述:从零到一,构建你的第一人称世界如果你一直对游戏开发充满好奇,看着屏幕上流畅移动的角色,心里琢磨着“这到底是怎么做出来的?”,那么你来对地方了。今天,我们就来亲手实现一个游戏中…
📅 2026/8/3 4:48:53
PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…
📅 2026/8/3 0:00:19
前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…
📅 2026/8/3 0:00:19
完整指南:如何让2008-2017年老款Mac运行最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher
还在为手中的老款Mac无法升级到最新系统而烦…
📅 2026/8/3 0:00:19
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/3 1:24:09
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/3 1:24:09
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/3 1:24:09
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/3 1:24:08
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/3 1:24:08
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/3 1:24:08