自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 LeetCode——链表合集

LeetCode——链表合集hot100

2025-04-01 15:27:51 635

原创 leetcode——hot100

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]

2025-03-18 10:08:40 225

原创 LeetCode- 轮转数组,除自身以外数组的乘积

输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]输出: [5,6,7,1,2,3,4]输出:[3,99,-1,-100]

2025-03-16 16:49:04 175

原创 LeetCode——560. 和为 K 的子数组

方法又用错了,滑动窗口方法无法用于包含负数的队列。解答错误35 / 93 个通过的测试用例,提交于 2025.03.12 09:32。可能包含负数,导致窗口无法通过简单的收缩/扩展来找到正确的子数组。没注意到要连续,好吧,我当成了背包问题。附上代码(错误版本)等于是,正数的样例被我通过了,带有负数的样例,没通过。子数组是数组中元素的连续非空序列。,滑动窗口会错误地跳过某些子数组。这个问题不能使用滑动窗口,因为。来高效解决这个问题。

2025-03-12 10:18:05 356

原创 Leetcode_hot100_day1

先排序,固定最小的加数,然后用双指针去夹住后面的序列,去查看三数之和是大了还是小了,决定指针往左还是往右移动。这里要注意的是记得去重,这里调了好久。很合理的思路,但是最后一个样例不能通过。暴力,但是我并不觉得很暴力,感觉还是很优美哈哈,986 / 987 个通过的测试用例。然后我让gpt优化了一下,以为能通过,其实还是没有,但是优化一下的代码更优美,尤其是去重那部分。**注意:**答案中不可以包含重复的三元组。然后屈服了,去学习一下,是怎么个事儿。,请你找出其中不含有重复字符的。,判断是否存在三元组。

2025-03-09 12:07:48 341

原创 LeetCode刷题day31——动态规划(股票问题)(end)

dp[i][0]表示在第i天持有股票时的最大利润。dp[i][1]表示在第i天不持有股票时的最大利润。

2025-01-08 12:32:15 1163

原创 LeetCode刷题day30——动态规划(打家劫舍)

上一次刷题是2024-12-20,今天是2025-1-7,刚考完期末考试,元旦节出去玩了几天,回来躺了两天,就是现在了。时间过得好快,有很多要做的事情,好像今天才开始找到学习的状态,也挺好的。记录两个状态:此节点不偷的最大价值,此节点偷的最大价值(以此节点为父节点的子树中)。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。

2025-01-07 14:43:00 974

原创 LeetCode刷题day29——动态规划(完全背包)

*进阶:**如果给定的数组中含有负数会发生什么?当 m = 2,n = 3 时,n = 3 这表示一共有三个台阶,m = 2 代表你每次可以爬一个台阶或者两个台阶。是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。**注意:**不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。求组合,所以先遍历容量,而且动态规划方程是跟着容量一起变化的。,表示不同面额的硬币;输出一个整数,表示爬到楼顶的方法数。没什么好分析的,前面的会了,这题秒。你可以认为每种硬币的数量是无限的。

2024-12-20 23:17:41 723

原创 LeetCode刷题day28——动态规划(完全背包)

小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。这些研究材料包括实验设备、文献资料和实验样本等等,它们各自占据不同的重量,并且具有不同的价值。一维数组解法01背包与完全背包遍历顺序的区别:由上面可知:01背包依赖于上层左侧,完全背包依赖于本层左侧;小明的行李箱所能承担的总重量是有限的,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料可以选择无数次,并且可以重复选择。第一行包含两个整数,n,v,分别表示研究材料的种类和行李所能承担的总重量。

2024-12-19 20:19:06 462

原创 LeetCode刷题day27——单调栈

可以找一圈,简单的想法是把数组复制一份拼在一起,遍历两倍数组的长度即可。注意观察代码,就是经典单调栈的写法,只是在循环条件上做了取模操作。单调栈是:加入的元素是单调的,一旦遇到不是单调的那个元素,就开始处理,弹栈。是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。左边看一下,看最多能向左延伸多长,找到大于等于当前柱形高度的最左边元素的下标;的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。暴力法,时间超限, 89 / 99 个通过的测试用例。

2024-12-18 14:27:26 1029

原创 LeetCode刷题day26——动态规划

与回文子串不同,回文子序列不要求字符在原字符串中的位置是连续的,只要求字符的相对顺序保持不变。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。这题我用LCS做的,求出最长公共子序列,然后每一个串都要变成这样,最后计算一下差值。这题也是用LCS做的,看一下最长公共子序列的长度,是否和s的长度相同。,找出其中最长的回文子序列,并返回该序列的长度。,这是从它自己作为串开始的。

2024-12-16 17:43:36 972

原创 LeetCode刷题day25——动态规划

时,它们才是合法的。也就是说,第二条线的起点和终点必须在第一条线的起点和终点之后。但是,**最长公共子序列(LCS)**天然就满足这个条件。是的,这个题的代码和上一题一样,啥也没改。是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。现在来尝试动态规划,天才啊,十分钟,成功!

2024-12-13 21:38:25 605

原创 LeetCode刷题day23~24——动态规划

小明的行李空间为 N,问小明应该如何抉择,才能携带最大价值的研究材料,每种研究材料只能选择一次,并且只有选与不选两种选择,不能进行切割。斜看的理解是:这件东西就是确定要放进去,看一下放进去后剩的空间,这个剩的空间的最大价值;小明能够携带 6 种研究材料,但是行李空间只有 1,而占用空间为 1 的研究材料价值为 5,所以最终答案输出 5。第一行包含两个正整数,第一个整数 M 代表研究材料的种类,第二个正整数 N,代表小明的行李空间。输出一个整数,代表小明能够携带的研究材料的最大价值。有m件物品,n的空间。

2024-12-11 21:57:49 718

原创 LeetCode刷题day22——动态规划

本来看了一下,第一直觉就是dp方程会写,然后好像无从下手,因为没想明白初始条件应该怎么设置。读了一遍题,其实初始条件就是第一行第一列全为1,因为没有别的不同路径了。对了,这题注意最后返回的位置是size,非size-1。而且,竟然用min,混杂加法,动态规划,跪着爬着也要走完!我一开始用的递归法,蛮好理解的哈,但是没通过。这题的解法就是斐波那契数列,但是最后时间超限了,果然最简单的递归做法,性能不怎么好。上一题的n最大是30,这题稍大一些(故意的,可恶。开始,后面的每一项数字都是前面两项数字的和。

2024-12-10 13:37:19 1053

原创 LeetCode刷题day21——贪心end

还没明白底下的代码是为什么,不能全部通过测试样例:105 / 171 个通过的测试用例。这题注意start开始的位置,合理的优化,减小时间复杂度。跟上一题的做法也很像,只不过小于零后的逻辑不一样。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。这题有点难啊,给节点设置状态的做法,挺神奇的。,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回。你从其中的一个加油站出发,开始时油箱为空。给定一个二叉树,我们在树的节点上安装摄像头。的解法,尝试使用更为精妙的。

2024-12-09 16:02:10 683

原创 LeetCode刷题day20——贪心

我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。,因为在确定字母出现的最后位置时,采用了两层循环。可以优化为O(N)。这题跟重叠区间,射气球差不多。关键在于判断重叠之后,要怎么处理。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。需要移除区间的最小数量,使剩余区间互不重叠。返回一个表示每个字符串片段的长度的列表。表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回。只在一点上接触的区间是。

2024-12-07 16:22:54 632

原创 LeetCode刷题day19——贪心

刚开始拿到,确实有点小难(可能是我太菜),至少比上一题难一些。但是想来想去,想到策略之后还是很好实现的,一开始只能过部分样例,然后样例能通过的越来越多,最后全对,嘿嘿,好开心。然后还规整了代码,这次很值得鼓励,我都没参考别人的代码,自己写的哈哈,上一题也是自己打的哈哈。都不重要,重要的是我究竟能覆盖多远的范围。想明白了这个,就不难了,秒掉。数组中的每个元素代表你在该位置可以跳跃的最大长度。处射出一支箭,若有一个气球的直径的开始和结束坐标为。判断你是否能够到达最后一个下标,如果可以,返回。

2024-12-06 21:10:06 889

原创 LeetCode刷题day18——贪心

昨天写了一道,今天写了一道,都有思路,却不能全整对。昨天和小伙伴聊天,说是因为最近作业多,昨天没打题,负罪感满满,养成习惯了都。:首先处理较高的人,确保较高的人已经放到正确的位置后,身高较低的人再插入时就不需要考虑身高大于自己的人。的时间复杂度是 O(n),这样每次递归都需要进行一次 O(n) 的检查。:回溯中的每个分支都可能会重复尝试同样的状态,导致了大量的重复计算。值代表他前面需要站的人更少,插入顺序决定了前面人的排布,因此按照。列表,检查每个人的身高是否符合条件。:对于身高相同的人,较小的。

2024-12-05 17:51:47 1052

原创 LeetCode刷题day17——贪心

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 **摆动序列。周日休息,昨天有个课程作业说是晚上开会,等了很久一直没开,也没跑步,卡在摆动序列,题也没打完…暴力法:from n to 0,从n不断减小遍历,每次都检查是否符合单调递增的条件,优点是:方法简单;该算法基于贪心策略,目标是通过每次选择当前最优的买入和卖出时机来获得最大利润。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。这样只需要求每天的差值,找利润是正数时,买入卖出。这样想就复杂了,是的!

2024-12-03 15:12:18 1016

原创 LeetCode刷题day16——贪心

今天的题目,实在太简单(确实是简单题类型)秒掉,任何注释不想写,嘿嘿,甚至帖子都不想发,但还是留下一些记录吧!(实际上是我今天刚写贪心,想找找信心,不想为难自己,事实证明,确实有效果)假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。,这个孩子会得到满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付。,这是能让孩子们满足胃口的饼干的最小尺寸;如果你能给每位顾客正确找零,返回。顾客排队购买你的产品,(按账单。

2024-11-30 17:30:50 473

原创 LeetCode刷题day15——回溯法(end)

但是课堂上偏偏用的是N皇后讲回溯法,没事,我还能肝!下一道是解数独,也是困难,但是我对这个蛮感兴趣的,那就做一做,看看计算机是怎么思考的!这题是用横向循环遍历行内元素,递归深度遍历每一行。一开始看到棋盘问题,就会觉得是二重循环,其实不是,因为每层只需要填一个数字而已。这是我做到的第一个需要在递归里面用两层循环的题,而且上来就写循环,也没有终止条件?是的,总会酷酷退出的。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。的棋盘上,并且使皇后彼此之间不能相互攻击。分别代表了皇后和空位。

2024-11-29 11:48:20 340

原创 LeetCode刷题day14——回溯法

当然,还是不想写题解,懒猪儿~有啥要注意的写注释里了,嘿嘿。下了好几天雨,今天出太阳了,心情美丽。今天是2024年11月27日。给定一个可包含重复数字的序列。给定一个不含重复数字的数组。返回所有不重复的全排列。

2024-11-27 13:04:41 574

原创 LeetCode刷题day13——回溯法

注意的地方写在注释里,因为想要简单记录,所以不做详细的分析了,这题比较简单。感觉最近时间过得好快,每天打题需要快速解决了。但是也不能单纯求快,还得搞懂再溜。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。这题比上题难一些,不能重新排序去做,因为要求元素的相对顺序。,找出并返回所有该数组中不同的递增子序列,递增子序列中。,其中可能包含重复元素,请你返回该数组所有可能的。最近看到一些话挺有感触的:怎么学习?返回的解集中,子集可以按。递增子序列中至少有两个元素。

2024-11-26 13:00:04 913

原创 LeetCode刷题day12——回溯法

头疼,想不明白前真的想不明白,想明白了是真的明白了,我要吐了。,用以表示一个 IP 地址,返回所有可能的。正好由四个整数(每个整数位于。之间组成,且不能含有前导。给定一个只包含数字的字符串。思路写在注释里,麻了麻了。返回该数组所有可能的。,这些地址可以通过在。

2024-11-25 18:04:34 256

原创 LeetCode刷题day11——回溯法

开心的写完,发现172/176,最后测试:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],target =30.内存超过限制。,看清楚,想清楚再用回溯法。

2024-11-23 20:29:49 554

原创 LeetCode刷题day10——回溯法

最近都没有认真写思路分析,总之首先看到这个题的时候,脑子乱乱的。stoi函数倒是可以,直接变了未免太麻烦,因为这样不好单位取出数字。之前好像做过一个这种题目,不过是不允许重复数字,这个允许重复,而且允许自己重复许多次!首先写出基本的回溯模板,然后想想怎么做。比如【1,2,3,4】首先我们需要把res的子数组排序,排序后的。如果至少一个数字的被选数量不同,则两种组合是不同的。的字符串,返回所有它能表示的字母组合。这里的循环上界,递归深度,跟前面做的题不一样了!,再把它们加入到set中,嘿嘿,大功告成!

2024-11-22 12:16:04 919

原创 LeetCode刷题day9——回溯法

该列表不能包含相同的组合两次,组合可以以任何顺序返回。所有可能的有效组合的列表。

2024-11-21 18:14:24 313

原创 LeetCode刷题day8

来自:https://leetcode.cn/problems/linked-list-cycle-ii/solutions/2832831/jian-ji-qing-xi-yan-jin-de-tu-shi-tui-da-nak2/指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。今天的题目,蛮力法都能做,但是想要优化,还是挺有意思的,数学上优化太神奇了!,请你找出并返回两个单链表相交的起始节点。,返回链表开始入环的第一个节点。,函数返回结果后,链表必须。,则在该链表中没有环。

2024-11-20 15:32:35 951

原创 LeetCode刷题day7

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。**进阶:**你能尝试使用一趟扫描实现吗?给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-11-20 00:13:41 272

原创 LeetCode刷题day6

*进阶:**链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。,请你反转链表,并返回反转后的链表。是指向下一个节点的指针/引用。如果是双向链表,则还需要属性。,请你删除链表中所有满足。给你一个链表的头节点。

2024-11-18 21:05:09 254

原创 LeetCode刷题day5

至此,数组篇刷题结束,顺便夹杂了两道动态规划的题,因为这学期恰好有算法设计与分析课。

2024-11-16 14:24:07 832

原创 LeetCode刷题day4

所有元素,且元素按顺时针顺序螺旋排列的。,返回矩阵中的所有元素。

2024-11-15 16:16:32 267

原创 LeetCode刷题day3

给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度**。**如果不存在符合条件的子数组,返回0。

2024-11-14 16:40:29 291

原创 LeetCode刷题day2

元素的顺序可能发生改变。如果所有的断言都通过,你的解决方案将会。,如果目标值存在返回下标,否则返回。个元素有序的(升序)整型数组。组成的新数组,要求也按。

2024-11-13 12:28:06 266

原创 LeetCode刷题day1

D[i][j]②末尾不能匹配上: 丢掉s1丢掉`s2`末尾:`D[i][j] = D[i][j-1] `谁效果好留下谁。本题就是把数组一分为二,且是均分。因此,如果数组累加和为奇数,肯定不行。注意题目的范围,注意调整。

2024-11-12 20:14:46 335 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除