news 2026/2/24 8:24:07

12.29 - 字符串相加 vector和map的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
12.29 - 字符串相加 vector和map的区别

目录

1.加字符串相

a.核心思想

b.思路

c.步骤

2.vector和map的区别

a.不同点

b.相同点


1.加字符串相

415. 字符串相加 - 力扣(LeetCode)https://leetcode.cn/problems/add-strings/

class Solution { public: string addStrings(string num1, string num2) { string result = ""; int carry = 0; int i = num1.size() - 1, j = num2.size() - 1; while (i >= 0 || j >= 0 || carry > 0) { int digit1 = (i >= 0) ? num1[i--] - '0' : 0; int digit2 = (j >= 0) ? num2[j--] - '0' : 0; int sum = digit1 + digit2 + carry; carry = sum / 10; result.insert(result.begin(), sum % 10 + '0'); } return result; } };

a.核心思想

模拟手工加法的过程,从两个字符串的末尾开始逐位相加,处理进位情况,最后将结果反转得到最终的和字符串。

b.思路

① 使用两个指针分别指向两个字符串的末尾。

② 从末尾开始逐位相加,将每一位的结果模10作为当前位的值,整除10得到进位值。

③ 将每一位的结果插入到结果字符串的前面。

④ 处理完所有位后,如果还有进位,将其插入到结果字符串的最前面。

⑤ 返回结果字符串。

c.步骤

① 初始化结果字符串result,进位carry为0,以及两个指针ij分别指向num1num2的末尾。

② 循环直到两个指针都处理完且进位为0:

  • 获取当前位的数字,如果指针未越界则取对应字符转换为数字,否则取0。

  • 计算当前位的和以及进位。

  • 将当前位的值插入到结果字符串的前面。

  • 移动指针。

③ 返回结果字符串。

2.vector和map的区别

a.不同点

vector

map

数据结构与存储方式

本质是动态数组,在内存中是连续存储的。这种连续存储使得它能够高效地进行随机访问,通过下标直接定位元素,时间复杂度为 O(1)

通常基于平衡二叉树(如红黑树)实现,元素以键值对的形式存储,并且会根据键的大小自动排序。由于是树形结构,其内存不是连续的

元素特性

存储的是单一类型的元素,元素之间没有特定的关联关系,只是按照插入顺序依次排列

存储的是键值对,每个键都是唯一的,通过键可以快速找到对应的值,键和值之间存在明确的映射关系

操作效率

在尾部进行插入和删除操作效率较高,时间复杂度通常为 O(1);但在头部或中间插入和删除元素时,需要移动大量元素,时间复杂度为 O(n)。随机访问元素效率极高

插入、删除和查找操作(基于键)的时间复杂度通常为 O(log n),因为需要遍历树结构来找到对应的位置

适用场景

适用于对元素进行顺序存储,且需要频繁进行随机访问的场景,例如存储一系列的数据点,后续需要根据索引快速获取某个数据点的值

适用于需要根据键快速查找对应值的场景,例如在字典应用中,通过单词(键)快速查找其释义(值)

b.相同点

① 都是标准模板库(STL)容器:vector 和 map 都是 C++ 标准模板库中提供的容器,用于存储和管理数据,为程序员提供了方便的数据存储和操作方式。

② 都支持迭代器操作:都可以使用迭代器来遍历容器中的元素,方便对容器内的数据进行各种操作,如遍历、查找、修改等。

③ 都可以动态增长:vector 可以根据需要自动扩展其存储空间以容纳更多的元素;map 也可以动态地添加和删除键值对,适应数据的变化

希望这些内容对大家有所帮助!

感谢大家的三连支持!

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

使用PyTorch镜像进行文本生成:GPT风格模型实战

使用PyTorch镜像进行文本生成:GPT风格模型实战 在现代AI研发中,一个常见的尴尬场景是:你在本地笔记本上训练好的GPT模型一切正常,结果推到服务器却因为CUDA版本不匹配、cuDNN缺失或PyTorch编译问题直接报错。这种“在我机器上能跑…

作者头像 李华
网站建设 2026/2/23 13:35:36

PyTorch与TensorFlow对比:为何更多人转向PyTorch生态

PyTorch与TensorFlow对比:为何更多人转向PyTorch生态 在深度学习的黄金时代,研究者和工程师们每天都在与复杂的模型结构、庞大的数据集以及严苛的训练时间赛跑。而在这场效率之争中,一个趋势愈发明显:越来越多的人正在从 TensorFl…

作者头像 李华
网站建设 2026/2/23 18:00:48

HuggingFace Token认证机制:安全访问私有PyTorch模型

HuggingFace Token认证机制:安全访问私有PyTorch模型 在AI模型日益成为企业核心资产的今天,如何在开放协作与安全控制之间取得平衡,是每个AI工程团队必须面对的问题。HuggingFace Hub作为全球最受欢迎的模型共享平台,既承载着成千…

作者头像 李华
网站建设 2026/2/23 16:38:49

Java毕设选题推荐:基于SpringBoot的高校综合医疗健康服务管理系统设计与实现基于SpringBoot与Vue的高校健康管理系统设计与实【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/23 11:31:56

diskinfo下载官网替代方案:监控GPU存储与镜像运行状态

监控GPU存储与镜像运行状态:从传统工具到容器化实践 在现代AI开发中,一个常见的尴尬场景是:团队成员提交的训练脚本在本地完美运行,却在服务器上频频报错——“CUDA not available”、“显存不足”或“路径不存在”。这类问题背后…

作者头像 李华
网站建设 2026/2/24 1:54:53

git下载慢?教你用国内源加速PyTorch-CUDA-v2.8镜像拉取

用国内源加速 PyTorch-CUDA-v2.8 镜像拉取,彻底告别下载卡顿 在高校实验室、AI 创业公司甚至大厂研发中心,你可能都经历过这样的场景:刚拿到一块新显卡,满心期待地准备跑通第一个深度学习模型,结果 docker pull pytorc…

作者头像 李华