news 2026/9/23 22:21:36

C++ 后端面试必刷大厂算法题(附代码实现)第一期

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++ 后端面试必刷大厂算法题(附代码实现)第一期

C++ 后端面试必刷大厂算法题


文章目录

  • C++ 后端面试必刷大厂算法题
  • 一、3.无重复字符的最长子串
  • 二、146. LRU 缓存
  • 三、
  • 四、
  • 五、
  • 六、
  • 七、
  • 八、
  • 九、
  • 十、
  • 十一、
  • 十二、
  • 十三、
  • 十四、
  • 十五、
  • 十六、
  • 十七、
  • 十八、
  • 十九、
  • 二十、
  • 总结

一、3.无重复字符的最长子串


做到吐!

代码如下(示例):

class Solution{public:intlengthOfLongestSubstring(string s){intn=s.size(),left=0,right=0,ret=0;inthash[128];while(right<n){hash[s[right]]++;while(hash[s[right]]>1){hash[s[left++]]--;}ret=max(ret,right-left+1);right++;}returnret;}};

二、146. LRU 缓存

代码如下(示例):

// 官方答案structDLinkedNode{intkey,value;DLinkedNode*prev;DLinkedNode*next;};class LRUCache{private:unordered_map<int,DLinkedNode*>cache;DLinkedNode*head;DLinkedNode*tail;intsize;intcapacity;public:LRUCache(int_capacity):capacity(_capacity),size(0){// 使用伪头部和伪尾部节点head=newDLinkedNode();tail=newDLinkedNode();head->next=tail;tail->prev=head;}intget(intkey){if(!cache.count(key)){return-1;}// 如果 key 存在,先通过哈希表定位,再移到头部DLinkedNode*node=cache[key];moveToHead(node);returnnode->value;}voidput(intkey,intvalue){if(!cache.count(key)){// 如果 key 不存在,创建一个新的节点DLinkedNode*node=newDLinkedNode(key,value);// 添加进哈希表cache[key]=node;// 添加至双向链表的头部addToHead(node);++size;if(size>capacity){// 如果超出容量,删除双向链表的尾部节点DLinkedNode*removed=removeTail();// 删除哈希表中对应的项cache.erase(removed->key);// 防止内存泄漏delete removed;--size;}}else{// 如果 key 存在,先通过哈希表定位,再修改 value,并移到头部DLinkedNode*node=cache[key];node->value=value;moveToHead(node);}}voidaddToHead(DLinkedNode*node){node->prev=head;node->next=head->next;head->next->prev=node;head->next=node;}voidremoveNode(DLinkedNode*node){node->prev->next=node->next;node->next->prev=node->prev;}voidmoveToHead(DLinkedNode*node){removeNode(node);addToHead(node);}DLinkedNode*removeTail(){DLinkedNode*node=tail->prev;removeNode(node);returnnode;}};

三、

代码如下(示例):


四、

代码如下(示例):


五、

代码如下(示例):


六、

代码如下(示例):


七、

代码如下(示例):


八、

代码如下(示例):


九、

代码如下(示例):


十、

代码如下(示例):


十一、

代码如下(示例):


十二、

代码如下(示例):


十三、

代码如下(示例):


十四、

代码如下(示例):


十五、

代码如下(示例):


十六、

代码如下(示例):


十七、

代码如下(示例):


十八、

代码如下(示例):


十九、

代码如下(示例):


二十、

代码如下(示例):



总结

这篇文章是作者搜集大量面经和资料这里出来的。感谢你的支持
作者wkm是一名中国矿业大学(北京) 大一的新生,希望得到你的关注
如果可以的话,记得一键三联!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 3:24:06

c++经典练习题-多分支

目录 1304. 冷饮的价格&#xff08;2&#xff09; 1044. 找出最经济型的包装箱型号 1039. 求三个数的最大数 1035. 判断成绩等级 1300. 小明暑假的零花钱 1322. 求数的量级&#xff1f; 1049. 汉译英 1391. 公交卡充值问题&#xff1f; 1668. 运动会成绩统计 1669. 上…

作者头像 李华
网站建设 2026/9/22 20:51:17

qt为什么转向用cmake放弃qmake

Qt 从 qmake 转向 CMake 是其构建系统战略的重大转型&#xff0c;这一转变在 Qt6 中全面落地。下面从 技术、生态、工程实践 三个维度&#xff0c;系统解释&#xff1a; 一、Qt 使用 CMake 的核心好处 1. 强大的跨平台与多编译器支持 CMake 原生支持&#xff1a; Windows&…

作者头像 李华
网站建设 2026/9/23 17:03:59

云屋音视频 SDK 凭何成为信创技术困局的 “破局者”?

云屋音视频 SDK&#xff1a;信创技术困局的破局先锋在信息技术应用创新不断加速的大环境下&#xff0c;企业对于音视频技术的需求层次显著提升&#xff0c;不再局限于基础功能&#xff0c;而是朝着国产化、安全合规以及自主可控的高阶方向发展。然而&#xff0c;传统音视频方案…

作者头像 李华
网站建设 2026/9/23 4:13:02

【怎么理解maven中的镜像和仓库?】

我们用大白话、最直接的方式来解释这个问题。 先看以下几个情况&#xff1a; 情况1&#xff1a;没有镜像&#xff08;就像网购国外直邮&#xff09; # 你想要一瓶可乐&#xff08;比如spring-core.jar&#xff09; # 你在中国&#xff0c;但可乐工厂&#xff08;中央仓库&#…

作者头像 李华