自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录训练营第17天| 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和

【代码】代码随想录训练营第17天| 110.平衡二叉树 257. 二叉树的所有路径 404.左叶子之和。

2023-10-09 22:12:22 154

原创 代码随想录训练营第15天|104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数

【代码】代码随想录训练营第15天|104.二叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数。

2023-10-07 19:15:11 163 1

原创 代码随想录训练营第14天|226.翻转二叉树 101. 对称二叉树

【代码】代码随想录训练营第14天|226.翻转二叉树 101. 对称二叉树。

2023-10-06 17:09:40 157 1

原创 代码随想录训练营第13天|二叉树

刚刚我们说过了二叉树有两种存储方式顺序存储,和链式存储,顺序存储就是用数组来存,这个定义没啥可说的,我们来看看链式存储的二叉树节点的定义方式。int val;

2023-10-05 19:21:13 83

原创 代码随想录训练营第12天| 239. 滑动窗口最大值 347.前 K 个高频元素

【代码】代码随想录训练营第12天| 239. 滑动窗口最大值 347.前 K 个高频元素。

2023-10-04 14:11:19 19 1

原创 代码随想录训练营第11天|

第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。所以return false第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false字符串遍历完之后,栈是空的,就说明全都匹配了。

2023-10-03 09:26:42 26 1

原创 代码随想录训练营第10天| 232.用栈实现队列 225. 用队列实现栈

【代码】代码随想录训练营第10天| 232.用栈实现队列 225. 用队列实现栈。

2023-10-02 16:09:27 134 1

原创 代码随想录训练营第8天| 344.反转字符串 541. 反转字符串II 151.翻转字符串里的单词

遍历字符串的过程让 i += (2*k),i 每次移动2*k 就可以了,然后判断是否需要有反转的区间。

2023-09-27 18:41:24 241 1

原创 代码随想录训练营第7天| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。就返回了,因为 0 已经是确定的数了,四数之和这道题目 target是任意值。两层for循环确定a和b,可以使用哈希法来确定0-(a+b)是否在数组里出现过。就返回了三数之和 可以通过。

2023-09-26 11:34:43 243 1

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

定义一个数组叫做record用来上记录字符串s里字符出现的次数。需要把字符映射到数组也就是哈希表的索引下标上,再遍历 字符串s的时候,这样就将字符串s中字符出现的次数,统计出来了。那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。那么最后检查一下,最后如果record数组所有元素都为零0,说明字符串s和t是字母异位词,return true。

2023-09-25 17:08:05 290 1

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

可以使用快慢指针法,分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢。

2023-09-23 20:03:38 557 1

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

移除头结点和移除其他节点的操作不一样,因为链表的其他节点都是通过前一个节点来移除当前节点,而头结点没有前一个节点。这样移在单链表中移除头结点 和 移除其他节点的操作方式是不一样,在写代码的时候也需要单独写一段逻辑来处理移除头结点的情况。这给链表添加一个虚拟头结点为新的头结点,就可以使用和移除链表其他节点的方式统一了呢?首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。因为单链表的特殊性,只能指向下一个节点,如果删除的是头结点呢?最后呢在题目中,return 头结点的时候,别忘了。

2023-09-22 19:50:52 796

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

滑动窗口的基本思想是通过两个指针(通常是左指针和右指针)来定义一个窗口,然后根据问题的要求,不断地移动窗口的左右边界,以在窗口内部执行操作。所以可以考虑双指针法,两头往中间遍历,每次对比两边平方后大小,挑出大的放result数组(从右往左)数组是有序的,那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动。977.有序数组的平方。

2023-09-21 14:08:33 774

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

要在二分查找的过程中,保持不变量,在while中每一次边界的处理都要根据区间的的选择来操作,这就是。

2023-09-20 11:31:14 1047 2

空空如也

空空如也

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

TA关注的人

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