自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 训练营练习-Day27&回溯3

Leetcode 39 力扣

2023-05-15 23:15:40 39

原创 训练营练习-Day25&回溯2

Leetcode 216 https://leetcode.cn/problems/combination-sum-iii/

2023-05-15 23:13:18 37

原创 训练营练习-Day24&回溯1

解法:组合问题,递归+回溯。

2023-05-15 23:01:06 47

原创 训练营练习-Day20&二叉树6

if (rightIndex - leftIndex == 1) {// 只有一个元素。if (rightIndex - leftIndex < 1) {// 没有元素了。// 最大值所在位置。// 根据maxIndex划分左右子树。

2023-05-14 22:19:20 68 1

原创 训练营练习-Day18&二叉树5

if (root.left == null && root.right == null) { // 包含target 减去路径最后为0和不为0情况。if (traversal(root.right, targetSum)) {// 递归。if (traversal(root.left, targetSum)) {// 递归。if (i == 0){// 遍历到最底层,第一个值。

2023-05-10 23:43:15 47

原创 训练营练习-Day17&二叉树4

if (leftNum == -1) { // 左子树为-1表示已经不是平衡树了。if (rightNum == -1) { // 右子树为-1表示已经不是平衡树了。// 左右子树高度差大于1,return -1表示已经不是平衡树了。

2023-05-05 23:20:39 66

原创 训练营练习-Day15&二叉树3

本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。if (root.right == null) { // 右子树为null,1+左子树高度。if (root.left == null) { // 左子树为null,1+右子树高度。解法:后序遍历计算高度。解法:后序遍历计算高度。

2023-05-04 23:51:10 38

原创 训练营练习-Day15&二叉树2

public void 迭代(TreeNode node) {解法:迭代遍历,借助队列不断收取各层结果。//递归(root,0);二叉树层序遍历:借助队列实现。

2023-05-03 22:56:02 36

原创 训练营练习-Day14&二叉树1

解法:前序遍历,递归遍历,中左右。解法:中序遍历,递归遍历,左中右。解法:后序遍历,递归遍历,左右中。二叉树数据定义:链表。

2023-05-03 22:27:03 42

原创 训练营练习-Day13&栈与队列3

if (entry.getValue() > pg.peek()[1]) { //当前元素出现次数大于小顶堆的根结点(这k个元素中出现次数最少的那个)i--) { //依次弹出小顶堆,先弹出的是堆的根,出现次数少,后面弹出的出现次数多。//弹出队头(小顶堆的根结点),即把堆里出现次数最少的那个删除,留下的就是出现次数多的了。

2023-05-01 14:21:57 40

原创 训练营练习-Day11&栈与队列2

deque.isEmpty() && deque.peek().equals(c)){ // 堆栈里面不为空,拿出来和串里字符对比,相同就消除,否则入堆栈。// 第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。// 第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。} else if (s.equals("/")) { // 除法注意谁除谁,后入先出。

2023-05-01 12:44:44 30

原创 训练营练习-Day9&字符串2

KMP算法只是听说过,自己还没熟练掌握呢。呜呜呜,后面补学习博客吧。

2023-04-28 21:42:48 58

原创 训练营练习-Day10&栈与队列1

KMP算法只是听说过,自己还没熟练掌握呢。呜呜呜,后面补学习博客吧。

2023-04-28 00:18:43 46

原创 训练营练习-Day8&字符串1

解法:双指针使用temp交换位置。解法:双指针+循环遍历2k步长。

2023-04-27 00:58:27 60

原创 训练营练习-Day7&哈希2+双指针N数之和

i++) { // count>0 说明ransomNote字符比magazine多。if (count > 0) { // 这里是要思考的点,count为0完全匹配,count>0和count 0 && nums[i] == nums[i - 1]) { // 去重a,这里很难理解。if (map.containsKey(0 - temp)){ // 目标值减两数之和是否在哈希中。// 去重逻辑应该放在找到一个三元组之后,对b 和 c去重。

2023-04-26 00:45:26 53

原创 训练营练习-Day6&哈希1

/ 统计在nums1中出现并且也在nums2中出现的不重复元素。// 统计nums1中不重复元素。set.contains(n)) { // n不等于1且set不包含n。// s中字符加到数组计数。// key 放数组值,value放索引下标。// t中字符从数组减去。= 0){ // 数组中存在不为0元素,说明有多余字符。for (Character c : chars) { // 个位、十位按字符串取。解法:哈希数组(数据范围较小使用)计数,相同消掉,统计数组中是否存在不为0情况。

2023-04-25 00:04:19 53

原创 训练营练习-Day4&链表2

i++) { //快指针先走N步,然后同时移动快慢指针,实际走了n-1步,当快指针指向null时,慢指针指向倒数n的前一个位置。public ListNode swapPairs(ListNode head) { // 1 -> 2 ->3->4 虚拟头节点后 0 -> 2->1-> 4->3。倒数位置需要使用快慢指针,让快指针先走N步,然后快慢指针同时移动。// 顺序不能乱,快指针先走,快慢指针同时移动时候。// 顺序不能乱,慢指针后走,快慢指针同时移动时候。// 临时节点,保存两个节点后面的节点。

2023-04-22 22:29:20 50 1

原创 训练营练习-Day3&链表1

public ListNode removeElements虚拟头结点(ListNode head, int val) {解法二:使用虚拟头结点,虚拟头节点next指向head头节点联系起来。// 原链表的头节点是虚拟头结点的next指向。// 虚拟头节点下next是原链表的头节点。解法一:原链表区分头节点删除和非头结点删除。

2023-04-21 22:32:48 145

原创 训练营练习-Day2数组2

public static int[] sortedSquares相向双指针(int[] nums) { // 数组有序特性,平方后两边最大,相向双指针两边往中间聚拢。// 更新结果集,+1与否的判断?public static int minSubArrayLen同向双指针(int target, int[] nums) {// sum开始添加右指针元素。while (sum >= target) { // 当和满足题目条件。

2023-04-20 23:00:53 313

原创 训练营练习-Day1数组1

else if (nums[mid] > target){ // [1,2]本身包含右边界,下次搜索需要更新right。public static int removeElement暴力(int[] nums, int val) { // 暴力解法。} else if (nums[mid] > target){ // [1,2)本身不包含右边界,等于即可。if (nums[i] == val){ // 发现需要移除的元素,就将数组集体向前移动一位。// 此时数组的大小-1。// 循环条件

2023-04-19 20:54:26 290

空空如也

空空如也

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

TA关注的人

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