楼梯 成本offer 088

【剑指Offer】60、把二叉树打印成多行

# 【剑指Offer】60、把二叉树打印成多行 **题目描述:** 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 **解题思路:** 本题可类比第22题:从上往下打印二叉树[https://www.cnblogs.com/bujidao1128/p/17627566.html]( ......
Offer

【剑指Offer】59、按之字形顺序打印二叉树

# 【剑指Offer】59、按之字形顺序打印二叉树 **题目描述:** 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 **解题思路:** 这道题仍然是二叉树的遍历,相当于层次遍历,可以和第22题:从上 ......
字形 顺序 Offer

【剑指Offer】58、对称的二叉树

# 【剑指Offer】58、对称的二叉树 **题目描述:** 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 **解题思路:** 本题判断一棵树是不是对称的,和第18题可以对比分析:二叉树的镜像,和LeetCode第101题:101. ......
Offer

剑指 Offer 37. 序列化二叉树(困难)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230816211423205-318109193.png) ``` class Codec { public: void rserialize(TreeNode* r ......
序列 Offer 37

【剑指Offer】39、平衡二叉树

# 【剑指Offer】39、平衡二叉树 **题目描述:** 输入一棵二叉树,判断该二叉树是否是平衡二叉树。这里的定义是:如果某二叉树中任意结点的左、右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 **解题思路:** 首先对于本题我们要正确理解,一般情况下,平衡二叉树就是AVL树,它首先是二叉搜 ......
Offer

【剑指Offer】57、二叉树的下一个结点

# 【剑指Offer】57、二叉树的下一个结点 **题目描述:** 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 **解题思路:** 本题解决起来并不是很困难,主要是分析清楚所有可能的不同情况。对于中序遍历序列 ......
结点 Offer

【剑指Offer】38、二叉树的深度

**题目描述:** 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 **解题思路:** 本题相对比较简单。根据二叉树深度的定义,我们有以下理解:如果一棵树只有一个结点,那么它的深度为1。如果根结点只有左子树而没有右子树,那么树 ......
深度 Offer

剑指 Offer 38. 字符串的排列(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230815211654949-430689338.png) ``` class Solution { public: vector result; string pa ......
字符串 字符 Offer 38

【剑指Offer】26、二叉搜索树与双向链表

**题目描述:** 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 **解题思路:** 首先要理解此题目的含义,在双向链表中,每个结点都有前后两个指针;二叉树中,每个结点都有两个指向子结点的左右指针,同时,二叉搜索树树也是一种排序的 ......
双向 Offer

【剑指Offer】 24、二叉树中和为某一值的路径

# 【剑指Offer】 24、二叉树中和为某一值的路径 **题目描述:** 输入一颗二叉树的根结点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) **解题思路:** ......
路径 Offer

【剑指Offer】23、二叉搜索树的后序遍历序列

# 【剑指Offer】23、二叉搜索树的后序遍历序列 **题目描述:** 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 **解题思路:** 对于后续遍历序列,序列的最后一个值一定是树的根结点,而由二叉搜索树 ......
序列 Offer

剑指 Offer 36. 二叉搜索树与双向链表(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230814211438636-1150888080.png) ``` class Solution { public: Node* head=nullptr; Nod ......
双向 Offer 36

剑指 Offer 34. 二叉树中和为某一值的路径(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230814204415188-607618190.png) ``` class Solution { public: vector> result; vector p ......
路径 Offer 34

剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","dele ......
队列 两个 Offer 09

【剑指Offer】18、二叉树的镜像

# 【剑指Offer】18、二叉树的镜像 **题目描述:** 操作给定的二叉树,将其变换为原二叉树的镜像。 **解题思路:** 求一棵树的镜像的过程:先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有的非叶结点的左、右子结点后,就可以得到该树的镜像。 如下面的例 ......
镜像 Offer

【剑指Offer】22、从上往下打印二叉树

# 【剑指Offer】22、从上往下打印二叉树 **题目描述:** 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 **解题思路:** 本题实际上就是二叉树的层次遍历,深度遍历可以用递归或者栈,而层次遍历很明显应该使用队列。同样我们可以通过一个例子来分析得到规律:每次打印一个结点时,如果该结 ......
Offer

【剑指Offer】17、树的子结构

# 【剑指Offer】17、树的子结构 **题目描述:** 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) **解题思路:** 要查找树A中是否存在和树B结构一样的子树,我们可以分为两步:第一步,在树A中找到和树B的根结点值一样的结点R;第二步,判断树A中 ......
子结构 Offer

剑指 Offer 12. 矩阵中的路径

力扣官方解法: class Solution { public: bool exist(vector<vector<char>>& board, string word) { int h = board.size(), w = board[0].size(); vector<vector<int>> ......
矩阵 路径 Offer 12

第七章 项目成本管理

挣值分析: PV:计划价值:计划工作分配的经批准的预算; EV:已完成工作量的测量值; AC:实际成本:是在给定时段内,执行某活动而实际发生的成本; 进度偏差:SV=EV-PV 成本偏差:CV=EV-AC SPI:进度绩效指数:EV/PV CPI:成本绩效指数:EV/AC 如果SPI和CPI都大于1 ......
成本管理 成本 项目

剑指 Offer 54. 二叉搜索树的第k大节点(简单)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230813130240044-1768447763.png) ``` class Solution { public: void traversal(TreeNode ......
节点 Offer 54

一个mysql dba的成长之旅--第零章 绝处逢生:意外收到dba offer

(本故事纯属虚构,如有雷同实属巧合) 2018年的一个秋天的下午,江南理工大学图书馆一楼的宣讲会大厅人头攒动,充满了期待的氛围。这里正在举办一场国内知名互联网公司的宣讲会,吸引了众多毕业生前来倾听。小李身穿一套整洁的求职西装,手里拿着整齐的彩色简历,坐在室友旁边,全神贯注地聆听着台上大咖们的分享。 ......
绝处逢生 dba 之旅 mysql offer

《剑指Offer》-58-翻转单词顺序/力扣-151-反转字符串中的单词

可以使用栈,将每个单词(字符串)压栈,然后弹栈就 OK 了 好吧,实际写下来考虑到可能存在的多余空格问题,代码看起来并不简介,而且写之前就很明显直到需要最差额外 n 的空间,时间复杂度最差 2n,所以都不算好 思路是压栈的时候只压单词本身,弹栈的时候再去拼空格 ```c++ string rever ......
单词 字符串 顺序 字符 Offer

【剑指Offer】55、链表中环的入口结点

# 【剑指Offer】55、链表中环的入口结点 **题目描述:** 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 **解题思路:** 本题是一个比较典型的链表题目,难度适中。首先,对于大多人来说,看到这道题是比较开心的,因为判断一个链表是否存在环的方法,基本上大家都知道 ......
结点 入口 Offer

【剑指Offer】4、重建二叉树

# 【剑指Offer】4、重建二叉树 **题目描述:** 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回根结点。 ......
Offer

【剑指Offer】56、删除链表中重复的结点

# 【剑指Offer】56、删除链表中重复的结点 **题目描述:** 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5。 **解题思路:** 关于链表的大多数题目还是比较简单的 ......
结点 Offer

剑指 Offer 64. 求1+2+…+n(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230812232217818-587944382.png) ``` class Solution { public: int sumNums(int n) { //首 ......
Offer 64

【剑指Offer】36、两个链表的第一个公共结点

# 【剑指Offer】36、两个链表的第一个公共结点 **题目描述:** 输入两个链表,找出它们的第一个公共结点。 **解题思路:** 本题首先可以很直观的想到蛮力法,即对链表1(假设长度为m)的每一个结点,遍历链表2(假设长度为n),找有没有与其相同的结点,这显然复杂度为O(mn)。 进一步考虑, ......
结点 两个 Offer

【剑指Offer】25、复杂链表的复制

# 【剑指Offer】25、复杂链表的复制 **题目描述:** 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 **解题思路:** ......
Offer

【剑指Offer】16、合并两个排序的链表

# 【剑指Offer】16、合并两个排序的链表 **题目描述:** 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 **解题思路:** 首先需要判断几个特殊情况,即判断输入的两个指针是否为空。如果第一个链表为空,则直接返回第二个链表;如果第二个链表为空, ......
两个 Offer

剑指 Offer 13. 机器人的运动范围(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230811205715141-1668789012.png) ``` class Solution { //本题的思路为递归法 public: int cal(int ......
机器人 范围 机器 Offer 13