两个offer

剑指 Offer 07. 重建二叉树(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202308/2679751-20230817211855356-794842981.png) ``` class Solution { //本题思路:利用中序遍历,从前序遍历中找到左、右子树的根节点 ......
Offer 07

《剑指Offer》-31-栈的压入、弹出序列

经典的选择题,但是这里要求用代码实现 我们可以根据 pop 结果去模拟这个过程,如果能够拟合,就是 true 什么情况下拟合成功? 两个指针都指向了数组末尾,同时栈空 太复杂了,条件能否简化一点? 什么时候拟合失败? pushed 指针指向末尾全部压入栈中,但是poped 数组指针卡住了,不匹配导致 ......
序列 Offer 31

《剑指Offer》-16-数值的整数次方

将 n 次相乘的幂运算转化为 log2N 次平方运算,并且采用**递归**算法 原书给出的==最优算法本身不处理负数,是外层函数处理的== ```cpp double myPow(double x, int n) { double res = pow(x, abs(n)); if (n > 1);/ ......
整数 数值 Offer 16

【剑指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

将整数转换为两个无零整数的和

「无零整数」是十进制表示中 不含任何 0 的正整数。 给你一个整数 n,请你返回一个 由两个整数组成的列表 [A, B],满足: A 和 B 都是无零整数 A + B = n 题目数据保证至少有一个有效的解决方案。 如果存在多个有效解决方案,你可以返回其中任意一个。 示例 1: 输入:n = 2 输 ......
整数 两个

已知两个128维向量,向量格式为list,计算两个向量的余弦相似性

计算两个向量的余弦相似度可以使用以下公式: 余弦相似度 = (向量A · 向量B) / (||向量A|| * ||向量B||) 其中,向量A · 向量B 表示向量A和向量B的点积(内积),||向量A|| 和 ||向量B|| 表示向量A和向量B的欧几里德范数(模)。 下面是一个示例代码,展示如何计算两 ......
向量 两个 余弦 相似性 格式

【剑指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

2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2 每一次转化时,你可以将

2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2, 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2, 每一次转化时,你可以将 str1 中出现的 所有 相同字母变成其他 任何 小写英文字母, 只有在字符串 str1 能够通 ......
字符串 字符 str str1 str2

两个列表拼接

alist1=["apple","banana","orange"] alist2=["pear","peach","watermelon"] alist1.append(alist2) print(alist1) ''' ['apple', 'banana', 'orange', ['pear', ......
两个

剑指 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

88. 合并两个有序数组

# 88. 合并两个有序数组 2023年8月13日17:05:45 [88. 合并两个有序数组](https://leetcode.cn/problems/merge-sorted-array/) 简单 给你两个按 **非递减顺序** 排列的整数数组 `nums1` 和 `nums2`,另有两个整数 ......
数组 两个 88

从Element日期组件源码中学到的两个工具方法

最近翻到 ElementUI 的日期组件源码,看到一些处理日期的工具方法,挺有意思,平常没有注意到,特此记录下来。 ### 获取当前日期的前一天,后一天 ```js export const prevDate = function(date, amount = 1) { return new Dat ......
组件 源码 日期 两个 Element

SAP Hybris Revenue Cloud 和 SAP Subscription Billing 这两个产品的关联

`SAP Hybris Revenue Cloud`(前称SAP Hybris Billing)和`SAP Subscription Billing`是两个紧密相关且有一定历史演变关系的产品。它们都属于SAP公司的商业套件,用于帮助企业管理订阅业务、收入管理以及订阅式收费模型。本文将详细介绍这两个产 ......
Subscription SAP 两个 Billing Revenue

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

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