- 剑指 Offer 54. 二叉搜索树的第 k 大节点
给定一棵二叉搜索树,请找出其中第 k 大的节点的值。
- 剑指 Offer 12. 矩阵中的路径
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
![WX20230707-1001332x.png]
- 剑指 Offer 27. 二叉树的镜像
请完成一个函数,输入一个二叉树,该函数输出它的镜像
```C#
public TreeNode MirrorTree(TreeNode root)
{
if (root == null)
{
return root;
}
var left = MirrorTree(root.left);
v
- 剑指 Offer 09. 用两个栈实现队列
```C#
public class CQueue
{
private Stack __AppendStack = new Stack();
private Stack __DeleteStack = new Stack();
public CQueue()
{
}
public v
- 剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
```C#
public string ReplaceSpace(string s)
{
var sb = new StringBuilder();
foreach (var t in s)
{
if (t == ' ')
{
- 剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
---
```C#
//转为二叉树(类似树的思想)
public bool FindNumberIn2DArray(int[][] matr
- 字符串的最大公因子-1071
对于字符串 s 和 t,只有在 s = t + ... + t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。
给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2 。
---
```C#
public string GcdOfStrings(string str1,
- 链表和数组的区别
链表和数组是两种常见的数据结构,它们在存储和访问数据方面有着不同的特点。
---
存储方式:
数组:数组是一种连续的内存块,用于存储相同类型的元素。在内存中,数组的元素按照索引顺序排列。
链表:链表由节点组成,每个节点包含存储的元素和指向下一个节点的指针。节点在内存中可以是非连续的,它们通过指针链接在一起。
---
插入和删除操作:
数组:在数组中插入或删除元
- 螺旋矩阵-54
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
---
```C#
public IList SpiralOrder(int[][] matrix)
{
var list = new List();
var row = matrix.Length;
var column = matrix[