自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jasscical's blog

jasscical学习成长记录

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 (回溯_03)求电话号码的组合

17. 电话号码的字母组合解题思路:参考代码随想录,其他见注释class Solution {public: const string letterMap[10] ={ //各个数字对应的字母集合,用下标对应。 "", // 0 "", // 1 "abc", // 2 "def", // 3 "ghi", // 4 "jkl", // 5 "mno", // 6.

2020-10-31 13:33:47 138

原创 (回溯_02)组合求和

216. 组合总和 III77. 组合找出所有相加之和为n 的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解题思路代码随想录结合77题求组合那题,这题的话是加了一个总和的限制。回...

2020-10-29 20:17:36 327

原创 (回溯_01)组合

77. 组合给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解题思路代码随想录回溯三部曲:1.递归函数返回类型和传入参数2.回溯终止条件3.单层搜索的逻辑class Solution {public: vector<vector<int>> ...

2020-10-27 20:50:38 135

原创 (树_25)将二叉搜索树变成累加树

538. 把二叉搜索树转换为累加树给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node的新值等于原树中大于或等于node.val的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。解题思路参考代码随想录首先理解累加树的概念:看题目中的示例1,从右子树开始看,最右8(8),然后7...

2020-10-24 19:53:11 256

原创 (树_24)108.将有序数组构造二叉搜索树BST

108. 将有序数组转换为二叉搜索树难度简单621将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5解题思路参考:代码随想录可以回忆一.

2020-10-23 21:12:01 303

原创 (树_23)修剪二叉搜索树

669. 修剪二叉搜索树给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例 1:输入: 1 / \ 0 2 L = 1 R = 2输出: 1 \ 2示例 2:输入: 3 / \ 0 4 \ 2 / 1 L...

2020-10-23 20:03:58 119

原创 (树_22)删除BST中某个节点值为key的

450. 删除二叉搜索树中的节点代码随想录力扣传送门解题思路分5种情况,第一种是翻个底朝天都找不到node-val==key的,说明删除不了,返回空指针。第2、3、4、5种情况是找到了node->val == key的,那么根据节点的左右孩子是否存在进行了讨论。最复杂的是左右孩子都不为空的。需要将节点的左孩子,放到节点的右孩子的最左边(所以先要找到这个最左孩子),作为左孩子(这段结合Carl的图自己画画就直观了)。后面的就是node->val跟key的比较,然后用左孩子或.

2020-10-22 00:26:30 170

原创 (树_21)在BST中插入一个值

701. 二叉搜索树中的插入操作给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和 插入的值: 5你可以返回这个二叉搜索树: ...

2020-10-21 19:52:41 432

原创 (树_20)求二叉(搜索)树的最小公共祖先

235. 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root =[6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = ...

2020-10-19 23:59:26 1225

原创 (踩坑)windows下的linux子系统迁移至非系统盘

踩坑如下:先在微软应用市场下载linux然后安装完,再做目录链接会出现linux启动失败问题 先做目录链接会导致应用市场下载linux失败,如下图:正确操作如下:注意两个路径:linux默认安装路径: C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc 假如我们要迁移linux到的其他路径为:H:\Linux\Canonica.

2020-10-19 21:44:10 3890 9

原创 (树_19)求BST中的众数

501. 二叉搜索树中的众数给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树例如:给定 BST[1,null,2,2], 1 \ 2 / 2返回[2].解题思路:参考代码随想录三种方式:第一种map+vector+中序可以求...

2020-10-16 23:30:20 122

原创 (树_18)求二叉搜索树最小绝对差

530. 二叉搜索树的最小绝对差解题思路参考(代码随想录)跟(98.判断是否为BST、二叉树遍历方法、验证二叉搜索树)类似的解法只要是BST,中序都可以看成是一个有序递增的数组。 INT_MAX是整数类型最大值,INT_MIN是整数类型最小值,代码有注释为何要使用最大值 三种方式:vector套路、递归(用一个pre保存上一个节点)、迭代法(模拟递归,跟98题结构类似,掌握这种套路)```cpp []/**BST套路:递归加进vector看成有序数组 * Def..

2020-10-15 21:47:40 124

原创 (树_17)树的前中后序遍历以及统一写法

参考:代码随想录、统一写法144. 二叉树的前序遍历145. 二叉树的后序遍历94. 二叉树的中序遍历/**前序遍历 * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };

2020-10-14 15:04:34 181

原创 (树_16)验证是否是BST

解题思路:四种方式,都是用到中序(BST为递增序列):将所有节点值放入vector,然后判断是否为递增序列 设置一个最小值maxVal,遍历左右子树,处理中间节点时,符合当前节点值大于maxVal值,要不断更新maxVal值,不符合直接返回false 设置一个指针保存上一个节点,然后处理中间节点与第二个方式类似,注意一下判断的条件 迭代法:模拟中序递归,不太好写 ```cpp []/**中序将各节点值放入vector,判断是否为递增序列 * Definitio...

2020-10-14 14:36:03 157

原创 (树_15)二叉搜索树中搜索给定的值

700. 二叉搜索树中的搜索难度简单93给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \ 1 3和值: 2你应该返回如下子树: 2 / \ 1 3在上述示例中,如果要找的值是5,但因为没有节点值为...

2020-10-13 22:28:35 381

原创 (树_14)合并二叉树

617. 合并二叉树难度简单548给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 1 2 ..

2020-10-12 22:57:19 156

原创 (树_13)构造二叉树

106. 从中序与后序遍历序列构造二叉树参考资料:代码随想录解题思路后序:左右中中序:左中右分为以下几步:1.后序、中序是否为空,为空直接返回空树,否则进入后续步骤2.获取后序最后一个元素,作为根节点3.由后序最后一个元素在中序里找到分割点delimiter4.由分割点对中序进行分割成子序列:左中序,右中序5.然后对后序进行分割成子序列:左后序,右后序(需要借助左中序来判断分割点位置,详情看代码注释)6.递归构造左子树,右子树...

2020-10-11 22:06:35 258

原创 linux下使用C++笔记

1、使用gcc编译C++文件gcc test.cpp -lstdc++ -o testg++ -std=c++11 -o test test.cpp

2020-10-11 10:00:14 86

原创 (树_12)树最左下角的值

513. 找树左下角的值解题思路参照代码随想录这题用层次遍历最好理解,递归用到回溯不太好理解```cpp []/**层次遍历 * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}

2020-10-07 23:18:00 132

原创 vim编辑快捷键

记录个人学习,仅供参考~vim:1.保存写的文件并命名: 按esc进入命令模式,输入“:wq filename”,按回车键2.调整高亮:进入命令模式,输入“:syntax on”3.显示行号:进入命令模式,输入 “:set number”4.vim配置,输入“vim ~/.vimrc”5.上下左右键移动 或 h-左,l-右,j-下, k-上6.w--跳动一个word, b--往回跳back7.ctrl+f(pgup)--往前翻页, ctrl+b(pgdn)--往后翻页8.快速定位到某.

2020-10-05 17:32:55 197

原创 (树_11)求二叉树的所有节点个数

222. 完全二叉树的节点个数难度中等248给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~2h个节点。示例:输入: 1 / \ 2 3 / \ /4 5 6输出: 6解题思路:代码随想录/**迭代法:层次遍历 * Definition for a bi..

2020-10-01 21:03:56 3035

black.vssettings

黑色高亮的代码编辑风格!在vs2010 工具(Tools)->导入导出设置(import and export settings),导入这个文件就可以开始疾风操作!

2019-09-27

空空如也

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

TA关注的人

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