logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

数据结构 06 线性结构

pta练习题,需要多回顾,多小结,记得常回来看看~

#数据结构#算法#学习
Leetcode 120 求根节点到叶节点数字之和 | 完全二叉树的节点个数

核心解法是深度优先搜索(DFS),遍历所有根到叶的路径;推荐用数值累加)的方式,无需字符串转换,效率更高;递归终止条件:节点为空返回 0,叶节点返回当前累积值,非叶节点返回左右子树结果之和。这个实现满足题目所有约束(节点数≤1000、深度≤10),时间复杂度 O (n)(每个节点遍历一次),空间复杂度 O (h)(h 为树的深度,递归栈空间)。暴力版(必掌握)终止条件:空节点返回 0;1 + 左子

文章图片
#leetcode#学习#深度优先 +2
Leetcode 106 删除链表的倒数第 N 个结点

核心技巧:用虚拟头结点解决删除头结点的边界问题,用双指针(快慢指针)实现一趟扫描找到倒数第 N 个结点。关键逻辑:快指针先移n步,快慢指针再同步移动,直到快指针到末尾,此时慢指针的下一个就是要删除的结点。内存管理:C++ 中手动创建的结点要记得delete,避免内存泄漏。你的原代码出错的核心原因是:没有处理头结点被删除的情况(比如示例 2),直接从head开始移动指针,导致删除逻辑不统一。加入虚拟

#leetcode#算法#学习 +2
数据结构 12 图

编程基础→数据结构u→v。

#数据结构#深度优先#算法 +1
Leetcode 58 | 附:滑动窗口题单

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是 "abc",所以其长度为 3。注意 "bca" 和 "cab" 也是正确答案。1因为无重复字符的最长子串是 "b",所以其长度为 1。3因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。

#leetcode#算法#学习
cpp 04 | vector命名空间导入 | vector容器常用方法 | &引用

特性直接写vector命名空间依赖无(显式指定std必须通过using导入或整个std命名冲突风险无(明确指向标准库)有(若自定义了vector类,会冲突)代码可读性高(一眼看出是标准库容器)低(需找using语句确认来源)适用场景大型项目、库开发、多人协作(推荐)小型测试代码、临时脚本(不推荐正式项目)vector和的区别,本质是 “有没有通过(或)导入std命名空间”—— 没写就必须用,写了就

#学习#c++
cpp 05 Lambda 表达式 | std::function | STL 算法 |整数向上取整

【代码】cpp 05 Lambda 表达式 | std::function | STL 算法 |整数向上取整。

#c++#算法#开发语言 +1
cpp 08 erase函数 | 变量声明语法 | 无序容器系列(unordered)

容器类型erase支持形式迭代器失效情况时间复杂度vectorstring单个元素、区间当前及后续迭代器失效O(n)deque单个元素、区间中间删除时两端迭代器可能失效O(n)setmap单个元素、区间、按键删除仅被删除元素迭代器失效O(log n)单个元素、区间、按键删除仅被删除元素迭代器失效(哈希表)O (1) 平均适配器(栈 / 队列)不支持erase需转移到其他容器操作顺序容器删后更迭代器

#开发语言#学习#c++
Leetcode 126 两数之和 II - 输入有序数组 | 盛最多水的容器

核心优化是找到结果后立即返回,避免无效循环,这是提升执行效率的关键。减少重复的和计算、简化返回逻辑,让代码更简洁且性能更好。双指针法本身已是该问题的最优解法(时间 O (n)、空间 O (1)),优化后保持了最优复杂度,仅提升代码的执行效率和可读性。双指针法的核心是移动较矮的指针,因为盛水量由矮边决定,移动高边无法提升有效高度,只会减少宽度;该解法将时间复杂度从暴力法的 O (n²) 优化到 O

文章图片
#leetcode#算法#学习 +1
    共 67 条
  • 1
  • 2
  • 3
  • 7
  • 请选择