1.6 - 复制IP地址 vector和list的区别

目录

1.复制IP地址

a.核心思想

b.思路

c.步骤

2.list和vector的区别


1.复制IP地址

93. 复原 IP 地址 - 力扣(LeetCode)https://leetcode.cn/problems/restore-ip-addresses/description/

class Solution { public: vector<string> restoreIpAddresses(string s) { vector<string> result; // 存储结果集 // 输入有效性检查:IP地址最多由12个数字组成 if (s.size() > 12) return result; string path; // 当前路径(存储临时IP地址段) backtrack(s, 0, 0, path, result); // 从第0个字符开始回溯 return result; } void backtrack(string& s, int start, int segment, string& path, vector<string>& result) { // 成功条件:生成4段且用完所有字符 if (start == s.size() && segment == 4) { path.pop_back(); // 移除末尾多余的点(如"192.168.1.1."→"192.168.1.1") result.push_back(path); return; } // 失败条件:越界或已生成4段 if (start >= s.size() || segment >= 4) return; // 尝试当前段的3种可能长度(1-3位) for (int len = 1; len <= 3; len++) { // 防止越界检查 if (start + len > s.size()) break; string sub = s.substr(start, len); // 截取当前段 // 有效性检查: // 1. 长度>1时不能以0开头(排除"01"类无效地址) // 2. 数值范围必须在0-255之间 if ((sub.size() > 1 && sub[0] == '0') || stoi(sub) > 255) break; // 生成新路径(避免修改原始path) string newPath = path + sub + "."; // 递归:处理下一段(位置后移len,段数+1) backtrack(s, start + len, segment + 1, newPath, result); // 注意:newPath是局部变量,递归返回后自动销毁 // 无需手动恢复path状态 } } };

a.核心思想

通过回溯法,在给定的数字字符串中插入三个点,将字符串分成四部分,判断每部分是否满足有效IP地址的条件,若满足则将其加入结果列表。

b.思路

① 使用回溯法遍历所有可能的插入点的位置。

② 对于每一种分割方式,检查四部分是否都满足有效IP地址的条件(整数在0到255之间,且不能有前导0,除非整数就是0)。

③ 如果满足条件,则将该IP地址加入结果列表。

c.步骤

① 定义回溯函数,参数包括当前字符串、当前分割的段数、当前路径和结果列表。

② 在回溯函数中,如果已经分割成四段且字符串已用完,则将当前路径加入结果列表。

③ 遍历所有可能的分割点,对每一段进行检查,如果满足条件则继续回溯。

④ 返回结果列表。

2.list和vector的区别

vector

list

底层数据结构

动态数组,连续内存存储,支持随机访问

双向链表,非连续内存存储,节点分散在内存中

访问效率

  1. 支持O(1)随机访问(通过下标[]at()

  2. 遍历速度快,缓存友好(内存连续)

  1. 不支持随机访问,必须从头/尾开始遍历(O(n)

  2. 访问任意元素较慢

插入/删除效率

  1. 尾部插入/删除O(1)(均摊)

  2. 中间或头部插入/删除O(n)(需要移动后续元素)

  1. 任意位置插入/删除O(1)(只需修改指针)

  2. 适合频繁插入/删除的场景

内存使用

  1. 内存连续,预分配容量(capacity),可能浪费内存

  2. 扩容时需重新分配内存并复制元素(代价高)

  1. 每个节点独立分配内存,无预分配

  2. 内存开销更大(每个节点存储前后指针)

适用场景

  1. 需要随机访问或尾部操作

  2. 数据量可预测,减少扩容开销

  1. 频繁插入/删除,且不关心随机访问

  2. 数据量变化大,避免vector扩容开销

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

感谢大家的三连支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1122483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

终极Windows窗口管理神器:一键隐藏桌面杂乱窗口

终极Windows窗口管理神器&#xff1a;一键隐藏桌面杂乱窗口 【免费下载链接】traymond A simple Windows app for minimizing windows to tray icons 项目地址: https://gitcode.com/gh_mirrors/tr/traymond 还在为桌面上堆满的各种窗口而烦恼吗&#xff1f;想要快速隐藏…

碧蓝幻想Relink伤害分析工具深度应用指南:精准优化你的战斗策略

碧蓝幻想Relink伤害分析工具深度应用指南&#xff1a;精准优化你的战斗策略 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors/gb/gbfr-logs …

【剑斩OFFER】算法的暴力美学——最长回文子串

一、题目描述二、算法原理思路&#xff1a;中心扩展算法我们要遍历字符串&#xff0c;然后固定当前字符串中遍历的字符&#xff0c;例如上图&#xff0c;每次遍历一个字符&#xff0c;那么先让定义两个指针指向当前字符&#xff0c;if : s【 left 】 s 【 right 】 &#xff…

OFD转PDF终极指南:3分钟掌握高效文档转换技巧

OFD转PDF终极指南&#xff1a;3分钟掌握高效文档转换技巧 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 在数字化办公日益普及的今天&#xff0c;OFD格式作为国产电子文档标准&#xff0c;在政务、金…

XAPK转APK终极指南:3分钟解决Android应用安装难题

XAPK转APK终极指南&#xff1a;3分钟解决Android应用安装难题 【免费下载链接】xapk-to-apk A simple standalone python script that converts .xapk file into a normal universal .apk file 项目地址: https://gitcode.com/gh_mirrors/xa/xapk-to-apk 你是否曾经下载…

ComfyUI ControlNet Aux预处理工具完全配置手册:从零到精通的高效指南

ComfyUI ControlNet Aux预处理工具完全配置手册&#xff1a;从零到精通的高效指南 【免费下载链接】comfyui_controlnet_aux 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要在AI图像生成中获得精准控制权&#xff1f;ComfyUI ControlNet Au…

5分钟快速上手:WindowResizer窗口强制调整神器全攻略

5分钟快速上手&#xff1a;WindowResizer窗口强制调整神器全攻略 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的应用程序窗口而头疼吗&#xff1f;&#x1f914;…

Poppins字体完全指南:从几何设计到多语言支持的18款字体详解

Poppins字体完全指南&#xff1a;从几何设计到多语言支持的18款字体详解 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 还在为设计项目寻找一款既能满足现代审美需求&#xff…

GmSSL国密通信协议实战指南:从TLCP到TLS 1.3的完整技术解析

GmSSL国密通信协议实战指南&#xff1a;从TLCP到TLS 1.3的完整技术解析 【免费下载链接】GmSSL 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱 项目地址: https://gitcode.com/gh_mirrors/gm/GmSSL 在数字化安全通信领域&#xff0c;GmSSL作为北京大学开发的国产商用密码开源…

Qwen3Guard-Gen-8B与NATS消息系统整合:轻量级通信中间件

Qwen3Guard-Gen-8B与NATS消息系统整合&#xff1a;轻量级通信中间件 在生成式AI加速落地的今天&#xff0c;一个看似不起眼却至关重要的问题正悄然浮现&#xff1a;我们如何确保模型输出的内容既智能又安全&#xff1f;尤其是在社交平台、在线教育或跨国客服这类高敏感场景中&a…

GmSSL国密算法实战指南:5个关键步骤构建安全应用系统

GmSSL国密算法实战指南&#xff1a;5个关键步骤构建安全应用系统 【免费下载链接】GmSSL 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱 项目地址: https://gitcode.com/gh_mirrors/gm/GmSSL 在当今信息安全形势日益严峻的背景下&#xff0c;掌握国密算法已成为开发者的必备…

StardewXnbHack:星露谷物语Mod开发者的资源提取利器

StardewXnbHack&#xff1a;星露谷物语Mod开发者的资源提取利器 【免费下载链接】StardewXnbHack A simple one-way XNB unpacker for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/st/StardewXnbHack 在星露谷物语Mod开发过程中&#xff0c;游戏资源提取…

FFmpegGUI新手终极指南:零基础快速上手视频音频转码

FFmpegGUI新手终极指南&#xff1a;零基础快速上手视频音频转码 【免费下载链接】ffmpegGUI ffmpeg GUI 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpegGUI 想要轻松处理视频音频文件却不懂复杂命令&#xff1f;FFmpegGUI就是你的救星&#xff01;这个基于Tauri框…

JFlash烧录程序与J-Link驱动协同:核心要点说明

JFlash 烧录实战指南&#xff1a;从驱动安装到自动化部署的全链路解析 在嵌入式开发的世界里&#xff0c;一个看似简单的问题——“ jflash怎么烧录程序 ”——往往能卡住不少初学者甚至经验丰富的工程师。你可能已经写好了固件、编译通过、连接了调试器&#xff0c;结果一点…

OFD转PDF终极指南:告别格式困扰,5分钟掌握高效转换技巧

OFD转PDF终极指南&#xff1a;告别格式困扰&#xff0c;5分钟掌握高效转换技巧 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 还在为OFD文档无法直接打印或分享而烦恼吗&#xff1f;OFD转PDF工具的出…

BRAM用于MAC层帧缓存的设计实例:项目应用

BRAM如何成为MAC层帧缓存的“隐形冠军”&#xff1f;一个实战派FPGA工程师的深度拆解你有没有遇到过这样的场景&#xff1a;千兆以太网接口正在满速收发数据&#xff0c;CPU却因为频繁中断而喘不过气&#xff1b;PHY层源源不断地送来帧数据&#xff0c;可缓存一卡顿&#xff0c…

FFmpegGUI视频转码神器:零基础也能轻松上手的高效工具

FFmpegGUI视频转码神器&#xff1a;零基础也能轻松上手的高效工具 【免费下载链接】ffmpegGUI ffmpeg GUI 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpegGUI 还在为复杂的视频转码命令行而头疼吗&#xff1f;FFmpegGUI正是为你量身打造的解决方案&#xff01;这个…

UEFITool 0.28 固件分析工具完整使用教程

UEFITool 0.28 固件分析工具完整使用教程 【免费下载链接】UEFITOOL28 项目地址: https://gitcode.com/gh_mirrors/ue/UEFITOOL28 UEFITool 0.28 是一款功能强大的跨平台UEFI固件分析工具&#xff0c;采用C和Qt框架开发&#xff0c;专门用于解析、提取和修改UEFI固件映…

Xbox手柄固件更新与macOS兼容性优化:360Controller驱动全面解决方案

Xbox手柄固件更新与macOS兼容性优化&#xff1a;360Controller驱动全面解决方案 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 还在为Xbox手柄在macOS上的连接不稳定、按键无响应而烦恼吗&#xff1f;超过70%的兼容性问题…

基于STM32的I2C时序精准控制EEPROM读写代码剖析

从时序细节到实战代码&#xff1a;手把手教你搞定STM32 I2C EEPROM稳定读写你有没有遇到过这样的问题&#xff1f;明明逻辑清晰、代码也跑通了&#xff0c;可每次重启设备&#xff0c;之前保存的校准参数就是“不翼而飞”&#xff1b;或者在批量写入数据时&#xff0c;偶尔出现…