logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Leetcode 149 多数元素 | 买卖股票的最佳时机

今天有点小累,来两道easy题打卡吧,明天接着动态规划。

文章图片
#leetcode#算法#数据结构
Leetcode 79 最佳观光组合

每个元素只遍历一次只用了两个变量O(n)O(1)公式拆分是核心:将原得分公式拆分为,把双变量问题转化为单变量的遍历问题。贪心维护最优值:遍历j时,用best维护之前所有i < j中的最大值,这样每一步只需要 O (1) 计算,整体时间复杂度是 O (n)。遍历顺序:因为要求i < j,所以从j=1开始遍历,先计算当前j的得分,再更新best(避免 j 自己和自己配对)。

#leetcode#算法#学习
Leetcode 65 固定长度窗口 | 中心辐射型固定窗口

窗口是 “连续固定长度” 还是 “以某个点为中心辐射”?若题目说 “长度为 k 的子数组”→ 普通固定窗口;若题目说 “半径为 k”“以每个元素为中心”→ 中心辐射型窗口。结果是 “每个窗口对应一个值” 还是 “每个索引对应一个值”?前者→普通固定窗口;后者→中心辐射型窗口。

#leetcode#算法#学习
Leetcode 68 搜索插入位置 | 寻找比目标字母大的最小字母

你的错误逻辑正确逻辑找到 target 时返回 mid-1找到 target 时,继续向右查找(因为需要「大于」target 的最小字符)target <letters [mid] 时,mid 是候选,需保留,right=mid(左闭右开)或不立即排除 mid循环结束直接返回 letters [0]循环结束后,先判断 left 是否越界:越界则返回 letters [0],否则返回 letters

#leetcode#算法#学习 +1
Leetcode 99 删除排序链表中的重复元素 | 合并两个链表

核心进步:你能独立完成链表题,掌握了链表遍历、节点拼接的核心逻辑,这是最关键的!优化方向减少不必要的 dummy 节点,降低代码复杂度和内存开销。避免重复遍历,提升代码时间效率。注意内存泄漏和入参修改的问题,养成良好的编程习惯。dummy 节点关键点:只有当头节点可能被修改 / 删除时才需要用,否则可以直接操作原链表。继续保持这个势头!你已经能独立解决链表问题,接下来可以关注代码的效率和规范性,你

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

完全有向图是指:对于具有 n 个顶点的有向图,任意两个不同的顶点之间都存在两条方向相反的弧(即从顶点 i 到顶点 j 有一条弧,同时从顶点 j 到顶点 i 也有一条弧),且不存在自环(顶点到自身的弧)。

#数据结构#学习#图论
数据结构 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
    共 73 条
  • 1
  • 2
  • 3
  • 8
  • 请选择