自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心part2 买卖股票的最佳时机 跳跃游戏

分析:依然计算覆盖范围,若不能到达最后一个元素,则选取覆盖范围内的最大覆盖范围。分析:计算覆盖范围,若范围大于最后一个元素的索引,则肯定能成功。分析:计算相邻两天的收益,将正收益相加即为总的最大收益。122.买卖股票的最佳时机II。122.买卖股票的最佳时机II。

2024-05-21 20:16:24 640 1

原创 贪心part 1 分发饼干,摆动序列,最大子序和

分析:优先让大饼干满足大孩子胃口,若当前饼干不能满足当前孩子胃口,就换下一个孩子。关键:只要和出现负数,就重新开始计数。

2024-05-20 22:38:00 598

原创 回溯(● 39. 组合总和● 40.组合总和II● 131.分割回文串)

分析:因为元素可以重复出现,故回溯过程中可以从当前元素开始。

2024-05-15 21:13:11 441

原创 回溯(组合III,电话号码的字母组合)

分析:此题与力扣77题的区别在于,77题返回1-n中k个数的组合,此题则是在1-9中选择k个数,使其和为n。分析:建立字典,存放电话号码和字符之间的映射关系,采用回溯的方式,挨个遍历。17.电话号码的字母组合。17.电话号码的字母组合。216.组合总和III。

2024-05-14 22:06:04 485 2

原创 回溯(组合)

分析:因为k为未知,故不可能编写确定数量的for循环实现遍历,回溯即通过参数替代多层for循环。

2024-05-13 21:03:47 663

原创 代码随想录 二叉树

分析:二叉搜索树的特点,左子树的值小于根节点的值,根节点的值小于右节点的值。235. 二叉搜索树的最近公共祖先。450.删除二叉搜索树中的节点。701.二叉搜索树中的插入操作。分析:一个节点可以是他自己的祖先。

2024-05-10 21:53:29 274

原创 代码随想录 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数

关键:二叉搜索树特点,中序遍历即按照升序排列方法1:遍历二叉树,用数组记录元素,因为数组按升序排列,故计算相邻元素之间的差值即可得到最小的绝对差方法2:遍历过程中,使用两个指针,分别记录当前元素,和当前元素的前一个元素,同时更新结果值,得到最小的绝对差。

2024-05-09 22:08:03 415 1

原创 代码随想录 栈与队列三

关键:维护一个单调队列,若将push进的元素大于队列内所有元素,则将其他元素pop,若将push进的元素比队列首部的元素小,则保存首部的元素,判断其与队列内其他元素的大小关系,pop掉比它小的元素。关键:使用字典存储元素和元素出现的次数,设计一个长度为K的小顶堆,将元素push进小顶堆内,若堆的长度大于k,则将堆顶元素pop出,返回堆内元素。239. 滑动窗口最大值。239. 滑动窗口最大值。347.前 K 个高频元素。

2024-04-29 22:09:23 918

原创 代码随想录 栈与队列 第二天

20.有效的括号题目链接/文章讲解/视频讲解:代码随想录无效的括号有三种情况:1.多左括号,但是无相应的右括号与之匹配2.顺序不匹配3.多右括号,无相应的左括号与之匹配新建一个栈用来存储当前括号的对应括号(此栈仅保存右括号),在push的过程中,若遇到相同的右括号,则将当前右括号弹出栈的情况:1.原字符串已经遍历完毕,但是栈不为空;2.遍历过程中,元素不同(此时栈不为空);3.原字符串未遍历完,栈已经为空。class Solution: def

2024-04-27 19:57:42 421

原创 代码随想录 栈与队列

使用一个队列实现栈,当pop元素时,先将队列中最后一个元素之前的所有元素移除并添加到队尾,再移除第一个元素即可。若要用栈实现队列,需要两个栈,当pop的时候,将一个栈的元素push到另一个栈,然后再pop,即实现队列的。栈: 先进后出 队列:先进先出。225. 用队列实现栈。232.用栈实现队列。232.用栈实现队列。

2024-04-26 23:11:03 401 1

原创 代码随想录 字符串2

28. 实现 strStr()28. 实现 strStr()459.重复的子字符串。

2024-04-25 22:06:53 262 1

原创 代码随想录 字符串系列

344.反转字符串方法:直接使用库函数reverse;使用双指针;使用切片法541. 反转字符串II关键:每次移动2*k的长度。

2024-04-24 21:21:32 578

原创 代码随想录 454.四数相加II 15三数之和 18 四数之和

方法:先遍历前两个列表,计算元素和,作为字典的key,value表示该和出现的次数,再遍历后两个列表,判断0-(后两个列表的元素和)是否在字典内,若在,则最终返回值加value。方法:三数之和的基础上,嵌套一个for循环,关键在剪枝和去重。方法:双指针法(先保证单调性)+元素去重。454.四数相加II。

2024-04-23 22:54:46 250

原创 代码随想录242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

题目链接/文章讲解/视频讲解:关键:两个字符串中的字母相同349. 两个数组的交集关键:可以使用集合或者数组。

2024-04-22 21:19:10 767

原创 代码随想录算法训练营第四天 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 142.环形链表II

方法2 使用快慢指针,先让快指针移动n+1个节点,然后快慢指针一起移动,直到快指针指向末尾的空节点,此时慢指针指向的即是倒数第n个节点的前一个节点,此时删除倒数第n个节点。思路:快慢指针,若有环,两者定会相遇,此时新建一个变量从头结点开始移动,慢指针接着原链表移动,当两者相遇时,即为入环节点。思路:方法1 先遍历链表获取链表长度,再删除倒数第n个节点。19.删除链表的倒数第N个节点。24. 两两交换链表中的节点。142.环形链表II。思路:使用虚拟头结点。

2024-04-21 21:58:15 242

原创 代码随想录第三天203.移除链表元素 707.设计链表 206.反转链表

方法2 使用双指针,定义一个pre指针将原指针方向转变, 再定义一个变量用来接收原链表的next。重点:使用双指针或者递归(递归不太会,后续再研究一下)重点:使用虚拟头结点,避免处理头结点。方法1 构造一个新的链表。重点:使用虚拟头结点。

2024-04-19 22:23:24 520

原创 代码随想录第二天977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

方法2 滑动窗口 相当于有不同长度的窗口在数组上滑动,要返回满足要求的窗口的最小长度。方法1:暴力解法 两个for循环,遍历所有元素,时间复杂度为O(n**2)数组按照非递减顺序排列,平方后的最大值位于两端,故选用双指针。思路:每条边要用相同的区间,可采用左闭右开,四条边分别处理。方法1:使用sort()函数,直接进行排序。

2024-04-18 22:35:08 427

原创 代码随想录算法训练营第一天|704二分查找、27移除元素

二分查找

2024-04-17 21:07:24 754

空空如也

空空如也

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

TA关注的人

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