实习冲刺Day21

news/2024/11/14 19:47:58/

算法

最长公共前缀

14. 最长公共前缀 - 力扣(LeetCode)

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {if(strs.size()==0)return "";//如果数组为空,直接返回空字符串string ans = strs[0];//ans先存放数组第一个元素string str="" ;//定义各一个空串,一会承接相同的前缀for (int i = 0; i < strs.size(); i++) {//遍历数组if(strs[i]=="")return "";//如果数组中有空串,直接返回空串int n = min(ans.length(), strs[i].length()); //比较           for(int j=0;j<n;j++){              if (ans[j] != strs[i][j]) {//字符不相等,直接跳出循环break;} str+=ans[j];//相等的存放在str中}ans=str;//将相同的字符赋给ans继续去比较str="";//将字符串str置为空if(ans.length()==0){return "";//当ans为空的时候直接返回“”;}}return ans;//返回公共的前缀}
};

基础知识

C++函数的返回值在内存中的传递过程

当函数被调用时,系统会为该函数的执行创建一个新的栈帧。栈帧是内存中用于存储函数调用信息的连续区域:局部变量、参数、返回地址、保存寄存器

C/C++函数返回值会使用eax寄存器来传递

函数的返回机制依赖于函数的返回类型。

对于基本数据类型,返回值通常通过寄存器传递,或者如果返回值较大,可能会通过拷贝一个临时对象来传递。
对于大型对象或结构体,返回时可能会涉及到复制构造函数(如果返回值是值传递)或移动构造函数的调用,以优化性能。
对于引用或指针类型的返回值,返回的是地址,不涉及复制或移动操作。减少调用拷贝构造。

虚拟内存,为什么要使用虚拟内存,虚拟内存可能比物理内存大吗

操作系统将内存分分成用户态与内核态

内存又分为物理内存与与虚拟内存

如果在物理内存下,在同一个内存中写入两个程序是不可能的,这会导致程序崩溃,这就需要操作系统为进程分配独立的虚拟地址来进行,各个进程都有自己的地址,互不干扰,这些进程不能访问操作系统的物理内存地址,操作系统会提供一种机制来解决虚拟地址怎么落到物理内存里。

程序中用的地址都是虚拟内存地址,实际上硬件里边的空间是物理内存地址。

 虚拟内存地址是由cpu芯片中的MMU进行映射到物理内存地址


http://www.ppmy.cn/news/1547018.html

相关文章

数字IC实践项目(10)—基于System Verilog的DDR4 Model/Tb 及基础Verification IP的设计与验证(付费项目)

数字IC实践项目&#xff08;10&#xff09;—基于System Verilog的DDR4 Model/Tb 及基础Verification IP的设计与验证&#xff08;付费项目&#xff09; 前言项目框图1&#xff09;DDR4 Verification IP2&#xff09;DDR4 JEDEC Model & Tb 项目文件1&#xff09;DDR4 Veri…

大数据学习10之Hive高级

1.Hive高级 将大的文件按照某一列属性进行GROUP BY 就是分区&#xff0c;只是默认开窗存储&#xff1b; 分区是按行&#xff0c;如一百行数据&#xff0c;按十位上的数字分区&#xff0c;则有十个分区&#xff0c;每个分区里有十行&#xff1b; 分桶是根据某个字段哈希对桶数取…

使用 Python 流式 Websocket 传输 Binance 订单更新 附代码

对于从事加密货币行业的任何人来说,使用 RESTapi从交易所查询实时数据并不总是最佳做法,原因有很多 效率低下:每个查询都需要时间,并且会显着影响性能,尤其是对于高频策略。 交易所施加的限制很容易被打破,例如Binance的硬限制为每分钟 1200 个请求权重您只能检索有限数量…

什么是 eCPRI,它对 5G 和 Open RAN 有何贡献?

这里写目录标题 eCPRI 协议平面&#xff1a;功能分解eCPRI与CPRI的区别CPRI具有以下特点&#xff1a;eCPRI具有以下特点&#xff1a;eCPRI 的优势 所需带宽减少 10 倍适用于 5G 和 Open RAN 的 eCPRI&#xff1a; 通用公共无线接口&#xff08;CPRI&#xff09;是一种行业合作&…

前端垂直居中的多种实现方式及应用分析

摘要&#xff1a; 本文主要探讨前端开发中元素垂直居中这一常见问题的多种解决方案。详细分析了基于 CSS 的不同属性组合、使用弹性布局&#xff08;Flexbox&#xff09;和网格布局&#xff08;Grid&#xff09;等现代布局技术实现垂直居中的方法&#xff0c;并讨论了它们在不同…

【K8S系列】K8S 集群 CPU 爆满导致 Pod Pending 状态的分析与解决方案

在 Kubernetes 集群中&#xff0c;CPU 突然爆满可能导致 Pod 状态变为 Pending&#xff0c;影响应用的可用性。本文将深入分析其原因&#xff0c;并附上相关命令及其执行结果&#xff0c;帮助你更好地理解和解决此问题。 1. 问题描述 在 Kubernetes 集群中&#xff0c;当 CPU …

简单叙述 Spring Boot 启动过程

文章目录 1. 准备阶段&#xff1a;应用启动的入口2. 创建 SpringApplication 对象&#xff1a;开始启动工作3. 配置环境&#xff08;Environment&#xff09;&#xff1a;识别开发环境与生产环境4. 启动监听器和初始化器&#xff1a;感知启动的关键事件5. 创建 ApplicationCont…

《战国王朝》青铜材料具体作用介绍

《战国王朝》中的青铜材料是游戏里非常重要的金属材料&#xff0c;而青铜材料的具体作用就是青铜用于制作第三层次的工具和武器;它比铜制的更好&#xff0c;但不如铁和钢制的&#xff0c;相比石制和铜制工具&#xff0c;青铜物品的使用寿命更长。 战国王朝青铜材料有什么用 青…