自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

再次递归调用 preorderHelper 方法,将当前节点的右子节点 node.right 作为新的节点参数,并将结果列表 res 传递下去。递归调用 preorderHelper 方法,将当前节点的左子节点 node.left 作为新的节点参数,并将结果列表 res 传递下去。4.访问根节点:如果当前节点 node 不为空,首先将节点的值 node.val 添加到结果列表 res 中。这是前序遍历中“根”的部分。同样的,递归调用时,将右子节点作为新的当前节点传入,并传入相同的结果列表 res。

2024-06-20 15:46:39 580 1

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

当窗口内元素个数达到k时(即i >= k - 1),队列的头部索引对应的元素就是当前窗口的最大值,将其添加到结果数组res中,并递增index。从最小堆中逐个弹出元素(此时堆中存储的是频率最高的k个元素),并将它们的键(即元素本身)存储到res数组中。在将当前索引添加到队列之前,先移除队列中所有超出当前窗口范围的索引(即小于i - k + 1的索引)。遍历输入数组nums,对于数组中的每个元素,检查它是否已经在HashMap中。如果当前元素的频率大于堆顶元素的频率,弹出堆顶元素,并将当前键值对添加到堆中。

2024-06-17 20:37:29 866

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

经过上一步后,stackOut 的栈顶元素就是队列的队首元素。如果 queue1 不为空,我们需要将 queue1 中的元素(除了最后一个)全部移动到 queue2 中,这样 queue1 的最后一个元素就变成了栈顶元素。如果 stackIn 和 stackOut 都为空,说明队列是空的,无法进行 pop 或 peek 操作。如果 queue1 为空,表示栈为空,无法进行 pop 操作,所有要将queue2的元素重写传入。如果不同,或者栈为空,表示该字符是新的或者不与前一个字符重复,因此将其压入栈中。

2024-06-15 20:11:33 848

原创 代码随想录算法训练营第八天|151. 反转字符串中的单词、卡码网:55. 右旋字符串

给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。使用一个循环,从charArray.length - k开始,到charArray.length - 1结束(包括这两个索引),将字符追加到str中。1.计算实际移动数量:通过取k对字符串长度s.length()的模(k % s.length()),以确保k表示的是有效的字符移动数量。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。

2024-06-14 20:54:32 834

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

3.在for循环中定义首尾指针,首指针为i,尾指针为Math.min(i + k - 1, charArray.length - 1),防止end不超过数组范围。4.在for循环,嵌套while循环遍历数组,条件为start<end,定义临时变量来保存交换首尾指针的值,更新首尾指针值(start++和end--)给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。3.遍历char数组,调用内部方法,判断指定字符是否为数字字符。

2024-06-13 16:37:28 548

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

如果sum为0的话,直接往结果集中添加数据,并且跳过(left++)重复的left以避免重复的三元组和跳过(right--)重复的right以避免重复的三元组,再次移动左右指针位置(left++,right--)6.在for循环中,嵌套一个while循环,条件为:left<right,定义一个sum用来计算nums[i]+nums[left]+nums[right]相加的和。4.遍历nums3和nums4,计算它们的和的相反数,并查看相反数在map中是否存在,如果存在,则将对应的次数加到计数器上。

2024-06-12 21:51:59 655

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

定义一个sum用来存n的每个数字的平方和,当n>0时,定义一个digit用来存n的单个位数值,令sum+=digit*digit,除掉低位的位置num=num/10。2.创建另一个HashSet,遍历nums2,判断nums2中是否有与set1中有相同的元素,如果有,则让新集合(intersectionSet)保存它。2.进入循环,当n不为1并且集合中没有包含n,往集合中添加n,调用一个自定义的方法让n=getNextNumber(n)4.返回,判断最后n==1为真,返会true;

2024-06-11 20:10:00 970

原创 88. 合并两个有序数组|26. 删除有序数组中的重复项| 80. 删除有序数组中的重复项 II

排列,所以如果nums1[i] > nums2[j],则把num[i]放到合并后数组的末尾nums1[p] = nums1[i],并且向前移动两个指针(p--,i--);3.进入for循环,此时条件为(i<nums.length-1),判读如果当前元素不等于之后的元素,则保存当前元素,使nums[k]=nums[i],并且使k+1.1.定义指向独属于nums1末尾的指针(i=m-1),定义指向nums2末尾(j=n-1)的指针,定义二者合并后数组的末尾指针(p=m+n-1)

2024-06-10 15:45:45 853

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

3.用临时指针保存下一个节点值,在让下一个节点值赋值为下下个节点值,移动指针到下下个节点,把当前节点值赋值为临时指针中存储的值。如果n合理,进入循环让size--,找到要删除的前一个节点,让其指向下下个节点,跳过要删除的节点。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。

2024-06-08 17:48:18 957

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

3.循环遍历从current.next,直到遍历到current.next==null时结束,在循环中寻找下一个值。如果为是要被删除的val就让它指向下下个位置(current.next = current.next.next),3.反转当前节点的next指针使它指向prev,并更新prev和current的值。2.当节点不为null时开始循环,定义临时节点来存储当前下一个指向的节点信息。1.定义当前节点(current)和前一个节点(prev)位置的指针。,请你反转链表,并返回反转后的链表。

2024-06-07 20:52:22 836

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

5.将矩阵划采取左闭右开的规则分为不同部分,依次为:从左到右的上边界(行保持不变为startX,列从startY开始增加,小于endY),从上到下的右边界(行从startX增加,小于endX,列保持不变),从右到左的下边界(行保持不变,列递减,大于startY),从下到上的左边界(行递减,大于startX,列保持不变),制定四个for循环来分别实现四种不同的部分,count在每个循环中累加并被赋值给matrix。2.设定原数组的左右(首尾)指针(left和right),创建新数组的尾指针(index)

2024-06-06 18:28:34 500

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

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。然后返回 nums 中与 val 不同的元素的数量。更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。输入:nums = [0,1,2,2,3,0,4,2], val = 2。输出:5, nums = [0,1,4,0,3,_,_,_]输入:nums = [3,2,2,3], val = 3。输出:2, nums = [2,2,_,_]

2024-06-05 14:31:22 248

空空如也

空空如也

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

TA关注的人

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