自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法训练营 Day 30

实现,由于其底层实现是链表,所以插入效率更快。twenty也可以不统计。实现,核心思想是解耦。

2024-06-12 16:46:05 172

原创 算法训练营 Day 29

1、两个数组之差的总和必须大于等于0,否则不能完成绕行 2、 一个站的收益如果小于0,肯定不能作为起点;而连续的多个站也可以等效地看做一个站,如果其累积收益小于0,就跳过,寻找下一个。注意这里对绝对值进行排序,而不是直接进行排序。贪心解法,可以认为是使用了经验公式。这里的边界条件有点麻烦。先确定一边,再确定另一边。

2024-06-12 15:21:37 193

原创 算法训练营 Day 28

题目假设总是可以到达数组的最后一个位置优化,也就是说,除非传入的数组长度为1,那么输出的ans为0,否则输出的ans一定大于0。所以可以据此进行优化。

2024-06-08 12:37:10 230

原创 算法训练营 Day 27

动态规划解法之后补上。

2024-06-07 16:36:34 233

原创 算法训练营 Day 26

【代码】算法训练营 Day 26。

2024-06-06 17:34:01 120

原创 算法训练营 Day 25

对于排列问题,树层上去重和树枝上去重,都是可以的,但是树层上去重效率更高!都能干,但如果数值范围小的话能用数组尽量用数组。由于这道题不能提前排序,所以要使用。可以发现效率提升了很多,所以数组,都可以做哈希表,而且数组干的活,还可以用数组进行优化。

2024-06-05 17:04:08 113

原创 算法训练营 Day 24

但这种方法通用性并不好,只能在组合中使用,而使用used还可以在排列中使用。这里一定要注意全局变量和局部变量的区别。

2024-06-05 15:17:57 91

原创 算法训练营 Day 23

也可以直接用startIndex进行去重。但是麻烦且效率不高,推荐第一种方法。另一种求回文串的方法。

2024-06-04 16:22:40 249

原创 算法训练营 Day 22

回溯,和昨天的思路几乎一样,关键是函数参数的选取。

2024-06-01 16:49:25 162

原创 算法训练营 Day 21

【代码】算法训练营 Day 21。

2024-05-31 18:05:45 216

原创 算法训练营 Day 20

二叉树的遍历顺序除了有前序遍历(中左右)、中序遍历(左中右)、后序遍历(左右中)外,还有三种,分别为反前序遍历(右左中)、反中序遍历(右中左)、反后序遍历(中右左)。这题可以用反中序遍历。迭代法,思路是一样的,也是使用反中序遍历。迭代法,很麻烦,代码可读性很差。迭代法,思路是一样的。

2024-05-30 18:56:50 138

原创 算法训练营 Day 19

插入的值可以直接充当二叉搜索树的叶子结点,这样就可以简化这道题的解法。递归也可以没有返回值,这里策略是一样的,都是让 新插入的节点作为叶子节点。可以直接使用 二叉树的最近公共祖先 的题解,但是效率较低。迭代法,逻辑是一样的。

2024-05-30 02:34:55 316

原创 算法训练营 Day 18

本题是二叉搜索树,所以可以利用二叉搜索树的性质,进行简化。本题使用了递归的回溯,因此不适合使用迭代法去求解。如果是一般二叉树,可以这么做。其实主体部分还是一样的。

2024-05-28 17:22:16 332

原创 算法训练营 Day 17

中序递归和后序递归只用改变中、左、右三条语句的顺序就可以了。实践证明,指针才是最快的,也是最不好理解的。注意二叉搜索树中不能存在数值相同的结点。​,所以结合本题数值范围,最好用。

2024-05-27 16:09:30 218

原创 算法训练营 Day 16

【代码】算法训练营 Day 16。

2024-05-26 22:43:02 329

原创 算法训练营 Day 15

树的深度和结点的深度一定要区分开,树的深度是这棵树所有结点的深度的最大值;同理树的高度也要和结点的高度区分开,数的高度是这棵树所有结点的高度的最大值。树的深度和树的高度是相等的,但这棵树上一个结点的高度。为整棵树的高度或深度加一。后序递归:(后序的威力)

2024-05-26 00:35:22 352

原创 算法训练营 Day 14

【代码】算法训练营 Day 14。

2024-05-24 13:56:17 145 1

原创 算法训练营 Day 13

【代码】算法训练营 Day 13。

2024-05-23 21:43:11 126 1

原创 算法训练营 Day 12

二叉树的统一迭代法,方法是在把所有结点都放入栈中,同时在要处理的结点后加一个空结点(一个标记),方便将对应结点放入结果集。先来前序遍历:(其他部分代码一样)统一迭代法——中序遍历。统一迭代法——前序遍历。统一迭代法——后序遍历。

2024-05-22 22:17:05 126 1

原创 算法训练营 Day 11

【代码】算法训练营 Day 11。

2024-05-22 11:16:49 383

原创 算法训练营 Day 10

理解什么是后缀表达式,以及前序遍历、中序遍历和后序遍历。

2024-05-20 12:19:42 201

原创 算法训练营 Day 9

【代码】算法训练营 Day 9。

2024-05-18 19:36:07 206

原创 算法训练营 Day 8

【代码】算法训练营 Day 8。

2024-05-18 13:15:26 164

原创 算法训练营 Day 7

【代码】算法训练营 Day 7。

2024-05-17 18:55:05 144

原创 算法训练营 Day 6

【代码】算法训练营 Day 6。

2024-05-17 16:51:09 190

原创 算法训练营 Day 5

理解这一题的关键是判断一个数是否为快乐数可以看其是否进入循环(1除外),如果进入循环那就一定不是快乐数。

2024-05-14 18:43:27 164 1

原创 算法训练营 Day 4

【代码】算法训练营 Day 4。

2024-05-13 16:08:42 262 1

原创 算法训练营 Day 3

1、移除链表元素第一种方法,使用不带虚你头结点的链表class Solution {public: ListNode* removeElements(ListNode* head, int val) { // 删除头结点 while (head != nullptr && head->val == val) { ListNode* tmp = head; head = head->nex

2024-05-13 11:20:58 397 1

原创 算法训练营Day 2

第一种方法,直接调用库函数。第一种方法,利用循环直接做。第二种方法,也可以利用递归。第二种方法,利用双指针。第一种方法,暴力解法。第二种解法,滑动窗口。

2024-05-12 19:42:57 240

原创 算法训练营Day 1

第一种方法(左闭右闭),利用递归。变量定义要遵循最小作用域原则。第二种方法(左闭右闭),利用。第三种方法(左闭右开),利用。第一种方法,直接利用库函数。第三种方法,利用双指针。第二种方法,暴力实现。

2024-05-10 18:27:42 225 1

空空如也

空空如也

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

TA关注的人

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