自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第28天 | 122.买卖股票的最佳时机II、 55. 跳跃游戏、45.跳跃游戏II、 1005.K次取反后最大化的数组和

终于自己写出一些题目来了。配合ChatGPT一起写真的会有奇效,大家一定要善用AI。

2024-12-11 21:06:04 217

原创 代码随想录算法训练营第一天 |455分发饼干、376摆动序列、53最大子序和

好难想,跟脑经急转弯一样。

2024-12-10 21:02:44 215

原创 代码随想录算法训练营第一天 |93.复原IP地址、78.子集、90.子集II

这是选择子集的问题,需要收集所有路径的节点,而不只是叶子节点。这题好难,怎么也想不明白,所以就先跳过。

2024-12-07 16:37:30 184

原创 代码随想录算法训练营第23天|39. 组合总和、40.组合总和II、131.分割回文串

回溯的关键是如何保存状态。现在需要用到更多成员变量来保存状态了。

2024-12-05 20:10:40 223

原创 代码随想录算法训练营第22天| 77. 组合、216.组合总和III、 17.电话号码的字母组合

回溯需要勤加练习。

2024-12-04 20:16:19 297

原创 代码随想录算法训练营第一天 |669. 修剪二叉搜索树、 108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

一定要熟悉树的遍历,这很重要,是关于树的算法的最根本的基础。

2024-12-03 20:36:41 238

原创 代码随想录算法训练营第一天 | 235. 二叉搜索树的最近公共祖先、 701.二叉搜索树中的插入操作、 450.删除二叉搜索树中的节点

逻辑过于复杂,不太清楚怎么插入树的节点,有空补一下相关知识。使用的是和普通最近公共祖先一样的方法,暂时mark。迭代遍历寻找合适的插入位置,然后进行插入操作,具体代码如下。

2024-12-02 21:44:03 233

原创 代码随想录算法训练营第18天 |530.二叉搜索树的最小绝对差、 501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

还得多练。

2024-12-02 21:38:28 178

原创 代码随想录算法训练营第一天 | 654.最大二叉树、 617.合并二叉树、 700.二叉搜索树中的搜索、98.验证二叉搜索树

合并树如何合并是一个难点,验证二叉树搜索树一定要充分利用其特性,栈的遍历不太熟悉,需加强练习。

2024-12-02 12:21:03 190

原创 代码随想录算法训练营第16天 |找树左下角的值、112. 路径总和、113. 路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

如果涉及回溯的话,某种情况下也能够用栈来实现,但是栈如何记录信息是一个难点,需要多多思考。关于树的构建,我们需要清楚如何寻找头节点,以及如何切割左右子树,知道这两点的话就足够了。

2024-12-02 10:07:35 250

原创 代码随想录算法训练营第一天| 226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、 111.二叉树的最小深度

在求与深度相关的问题的时候,请优先考虑层序遍历。

2024-11-29 10:07:04 135

原创 代码随想录算法训练营第15天| 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和、 222.完全二叉树的节点个数

对于树的节点的操作,中心思想就是一边遍历一边做逻辑操作,逻辑操作放在什么位置很关键,而树的遍历方法似乎并不太需要关注。

2024-11-27 15:02:58 316

原创 代码随想录算法训练营第一天 |144二叉树的前序遍历、94二叉树的中序遍历、145二叉树的后序遍历、102二叉树的层序遍历、107二叉树的层序遍历II、199二叉树的右视图

模拟递归的时候请多多使用栈,可以节省很多内存。在树的层次遍历的时候,一定要把队列中弹出的队首元素的左右子节点都入队,否则无法完全遍历。

2024-11-25 22:32:39 173

原创 代码随想录算法训练营第11天 |150. 逆波兰表达式求值、滑动窗口最大值、前 K 个高频元素

对于滑动窗口,可以使用单调队列O(n)的时间复杂度,对于排序问题,可以使用优先队列O(logn)的时间复杂度。

2024-11-24 22:14:04 252

原创 【无标题】代码随想录算法训练营第10天 | 232.用栈实现队列、 225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项

对于符号匹配问题,使用栈或有奇效。

2024-11-24 21:55:13 316

原创 代码随想录算法训练营第9天|151.翻转字符串里的单词、55.右旋转字符串

字符串基本可以看成数组来处理,只不过数组元素存的是数字,字符串存的的字符,能够利用的算法大纲是基本相同的。

2024-11-21 22:12:46 204

原创 代码随想录算法训练营第一天|344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

遍历字符串,主要是逻辑判断,利用string的加法运算符即可,代码如下.利用双指针,将两个指针同时向中间靠拢即可,较为简单,代码如下。逻辑判断很重要,适当用一下代码库的排序算法并无大碍,代码如下.

2024-11-20 22:21:08 255

原创 代码随想录算法训练营第7天|454.四数相加II、383. 赎金信

另一个较为巧妙地方法就是统计两个字符串各个字母的个数,如果ransomNote的某个字母的个数比magazine的同一个字母个数更多,那就说明magazine永远不可能构成ransomNote了,立即返回false即可,如果没有发现这种情况出现的话,就返回truee,即magazine可以构成ransomNote。,变成这种情况就会好理解好多,我们可以利用集合进行“推断”来解决,代码如如下。,乍看之下好像需要四重循环,实则并不需要,做一个简单的变换,要寻找共有多少个元组。

2024-11-19 21:55:26 884

原创 代码随想录算法训练营第6天| 242.有效的字母异位词、 349. 两个数组的交集、 202. 快乐数、1. 两数之和

对一些可能无法同时出现的元素或者相互排斥的元素 ,可以考虑使用哈希表。

2024-11-18 22:45:19 957

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

需要了解两件事情,如何确定位置信息和如何交换链表节点。另一个方法就是利用快慢指针,快指针每次移动两步,慢指针每次移动一步,如果有环,快指针必定先到达环内,并且当慢指针也进入环内之后,快指针将会以步长为1的相对速度追上慢指针,快慢指针必定会相遇。:利用双指针法(快慢指针)确定位置信息,具体为利用快指针从虚拟头节点开始先遍历N+1次节点,之后再让慢指针从虚拟头节点开始遍历,并且快指针继续遍历下去,当快指针到达nullptr之后就表明慢指针已经到达了待删除结点的前一个位置,此时进行删除操作即可,代码如下。

2024-11-17 11:12:12 196

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

链表基础:链表在内存空间中稀疏分布,通过指针进行连接,因此没办法使用索引进行读写,只能通过遍历来进行读写。

2024-11-17 10:30:32 213

原创 代码随想录训练营第二天|209长度最小的子数组、59螺旋矩阵、区间和

上述代码,我们首先寻找能够满足区间和大于target的窗口,如果满足要求,则逐步减小窗口,看是否能够满足长度最短,如果在缩小窗口的过程中无法再满足大于tartget的条件了,那么就扩大窗口。本题关键在于理清楚一个数字n需要旋转多少轮,以及如何计算每一轮的横向运动步数和纵向运动步数,另外,在最后的收尾时n为奇数和偶数的时候有一些细微的差别。最短子数组:可用滑动窗口做,所谓滑动窗口就是维护一段符合要求的数组区间,本题的要求就是数组区间的和需要大于target,在此之上再选择长度最短的区间。滑动窗口的代码如下。

2024-11-14 22:46:08 281

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

接着是双指针法,双指针法的核心思想就是,在遍历的时候,快指针每次遇到待删除元素的时候就等待一次,然后让快指针继续前进一次,表示跳过待移除的元素(跳过意味着删除),如果在遍历的时候,还没有遇到待移除元素,就把快指针位置上的元素复制到慢指针的位置上,完整遍历一遍之后就可以实现移除元素了。移除元素:数组的元素存储在一片连续的地址上,这已经是最紧凑的存储方式了,因此如果要删除元素的话就没有那么简单,每次删除一个元素,为了维护数组的紧凑性,我们需要把被删除的元素的后面部分移前一次。采用左闭右闭区间的解法如下。

2024-11-13 18:08:05 229 1

原创 C语言中double和float的区别

double为双精度浮点数:用它来定义变量时,占用8个字节即64bits;float为单精度浮点数:用它来定义变量时,占用4个字节即32bits。注意:在格式化输出时,double类型需要用%lf来作为占位符;而float则需要用%f来作为占位符,否则无法正确输出。今天刚学了一些C语言的基础,在此发博客记录一下。

2023-08-25 17:08:13 1027 1

空空如也

空空如也

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

TA关注的人

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