代码随想录——算法专栏
文章平均质量分 81
算法题
tyb333333
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode203.移除链表元素
题目信息题意:删除链表中等于给定值 val 的所有节点。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]示例 2: 输入:head = [], val = 1 输出:[]示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]原创 2024-08-21 16:31:22 · 829 阅读 · 0 评论 -
707.设计链表
可以说这五个接口,已经覆盖了链表的常见操作,是练习链表操作非常好的一道题目。下面采用的设置一个虚拟头结点(这样更方便一些,大家看代码就会感受出来)。原创 2024-08-21 16:30:08 · 730 阅读 · 0 评论 -
leetcode206.反转链表
关键是初始化的地方,可能有的同学会不理解, 可以看到双指针法中初始化 cur = head,pre = NULL,在递归法中可以从如下代码看出初始化的逻辑也是一样的,只不过写法变了。为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。最后,cur 指针已经指向了null,循环结束,链表也反转完毕了。递归法相对抽象一些,但是其实和双指针法是一样的逻辑,同样是当cur为空的时候循环结束,不断将cur指向pre的过程。原创 2024-08-21 16:29:02 · 700 阅读 · 0 评论 -
卡码网44. 开发商购买土地
前缀和。原创 2024-08-20 16:42:39 · 654 阅读 · 0 评论 -
卡码网58.区间和
第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。如上图,如果我们要求 区间下标 [2, 5] 的区间和,那么应该是 p[5] - p[1],而不是 p[5] - p[2]。如果,我们想统计,在vec数组上 下标 2 到下标 5 之间的累加和,那是不是就用 p[5] - p[1] 就可以了。而 p 数组是我们之前就计算好的累加和,所以后面每次求区间和的之后 我们只需要 O(1) 的操作。前缀和的思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。原创 2024-08-20 16:37:34 · 426 阅读 · 0 评论 -
Leetcode 59.螺旋矩阵II
*给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]原创 2024-08-20 15:56:11 · 668 阅读 · 0 评论 -
209.长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。原创 2024-08-18 15:31:54 · 885 阅读 · 0 评论 -
27. 移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。原创 2024-08-18 14:57:06 · 446 阅读 · 0 评论 -
二分 查找
二分法是非常重要的基础算法,为什么很多同学对于二分法都是一看就会,一写就废?其实主要就是对区间的定义没有理解清楚,在循环中没有始终坚持根据查找区间的定义来做边界处理。区间的定义就是不变量,那么在循环中坚持根据查找区间的定义来做边界处理,就是循环不变量规则。本篇根据两种常见的区间定义,给出了两种二分法的写法,每一个边界为什么这么处理,都根据区间的定义做了详细介绍。相信看完本篇应该对二分法有更深刻的理解了原创 2024-08-18 14:39:31 · 946 阅读 · 0 评论
分享