自定义博客皮肤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)
  • 收藏
  • 关注

原创 算法基础20:回溯算法1

回溯法通常可以抽象为一颗N叉树。树的宽度通常为在回溯法中处理的集合的大小,通常用for循环进行遍历。纵方向用递归来处理。可以把回溯法抽象成一个图形结构。

2024-04-02 21:24:07 295

原创 算法基础19 二叉树

其实就是按照从右到左的中序遍历,将节点数值不断累加即可。

2024-04-02 20:34:32 269

原创 算法基础18 二叉树

【代码】算法基础18 二叉树。

2024-03-28 16:18:27 243

原创 算法基础17 二叉树

思路:通过中序遍历,可以将所有的子序列按照顺序排列,使用两个指针一前一后去累计所有相等数值的情况。思路:我的一个误区是默认了 查找的是相邻的节点之间的最小绝对差,题目问的是所有节点之间的。基于二叉搜索树的特性,按照中序遍历则可以得到单调序列,进行相减查询即可。题目链接:leetcode236。

2024-03-28 13:42:13 275

原创 算法基础16:二叉树

题目思路:通过层序遍历,直接返回最后一层最左侧的数值即可。思路:递归方法去不断的把新的targetsum传入。

2024-03-24 22:15:26 113

原创 算法基础15 平衡二叉树 二叉树的所有路径 左叶子之和

平衡二叉树的条件是 左右子树长度差不超过1. 从上到下的递归方法需要不断去查询二叉树的左右子树的高度,然后再去做是否为平衡树的判断。只要碰到没有左子树和右子树的情况就记录进去。多加一个queue用于记录所有的组合方式。左叶子指的是,必须得是没有任何孩子的左侧节点。每个节点只有一个根节点。时间复杂度O(n^2)

2024-03-23 16:48:26 271

原创 算法基础14 二叉树的复习

问题:当一个树只有右节点或者只有左节点的时候就会出问题。

2024-03-22 21:16:16 95

原创 算法基础13 二叉树的层序遍历

思路:不需要将所有数值都取出来,只需每遍历完一层,将该层的最后的节点加入到队列中即可。将左子树的左孩子和右子树的右孩子;左子树的右孩子和右子树的左孩子成对存储到队列中即可。思路:仅需将从根到叶子的遍历结果 reverse一下即可。

2024-03-20 15:31:01 252

原创 算法基础12 二叉树的遍历,递归遍历,迭代遍历,前序中序后序

备注:递归遍历比较熟悉,但是迭代遍历需要看讲解。

2024-03-19 16:02:15 232

原创 算法基础11 队列的应用

【代码】算法基础11 队列的应用。

2024-03-19 08:48:31 407

原创 算法基础10 栈与队列2

如果遇到数字就将其压入到栈中,遇到符号就将之前的数字弹出,进行计算,把计算完的数字再压入到栈中。题目链接:leetcode1047。

2024-03-16 13:14:22 290

原创 算法基础9:栈与队列

和用栈实现队列类似,但是需要注意的一个地方是:每一次被Push一个新的值得时候,就要把之前的排好顺序的值都依次push进来。保证最新push进来的值作为最先会被pop出去的存在。

2024-03-15 17:38:55 231

原创 算法基础8:字符串,KMP算法

当我们匹配一个字符串的时候,发现不对,如果前面有一样的,那就从一样的地方再匹配。但是机器需要知道前面是否一样,一样的位置在哪里。这就需要构建一个数组,告诉机器,如果匹配不一样,如何向前找。按顺序按照人的理解去实现让机器能够类似实现匹配的代码。构建数组的逻辑和匹配的逻辑一样。

2024-03-14 19:05:04 347

原创 算法基础7:字符串1

2. 去除掉所有多余的空格,第一个字母之前和最后一个字母之后的空格,作为特殊进行处理。其他的空格删除通过判断是否和前一个一样都等于空格,进行删除。可以参考四数之和等的去重判断的思路。3. 对空格处理完的字符串进行翻转,第一次翻转。4. 对于单个单词进行翻转,第二次翻转。题目链接:leetcode151。1.不建立新的空间去做修改。

2024-03-13 21:06:37 272

原创 算法基础6:哈希表2,去重,剪枝

很简单的哈希表用法。

2024-03-13 19:28:35 407 1

原创 算法基础5:哈希表

编程遇到的问题:vector的赋值初始化,应该是vector{0,1,2}等,初始化列表的形式进行。vector(2,1)表示列表里面共两个元素,初始化值为1。unordered_set存储唯一元素的集合,用于检查是否存在。用于检查是否存在,同时存储其他信息,比如出现的次数,出现的位置等信息。常见使用形式:数组, std::unordered_set, std::unordered_map。数组适用于所检查的项连续且比较少的情况下, 比如检查26个英文字母。

2024-03-11 09:10:49 240

原创 算法基础4:链表2

其实可以声明一个dummyhead和一个遍历的结点就可以了,但是我怕我晕了,所以就多声明了几个。快慢指针,当两个指针刚好间隔N+1时,快指针指向终点时,慢指针指向要删除的节点的前一个节点。

2024-03-09 19:56:01 419

原创 算法基础3:链表1

【代码】算法基础3:链表。

2024-03-09 18:12:25 239

原创 算法基础2:数组,双指针,滑动窗口法

一般使用vector或者array来表示数组。vector其实是容器。

2024-03-07 11:30:52 513

原创 算法基础1:数组,二分法

通过两层for循环来实现,每发现一个要移除的元素,就把后面的所有值全部挪前一位。需要注意的是,如果删除了,重新排了序列,就需要对当前位置再次进行判断,不然如果重复出现val,就无法删掉第二次的val,i–存在的意义。所以,数组确定好大小后,内存大小不能修改,不能删除元素,只能覆盖。数组最大的特点: 在内存中存储时空间连续。

2024-03-06 20:49:08 1033

空空如也

空空如也

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

TA关注的人

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