- 什么是一个高度平衡的二叉搜索树?树结构中的常见用语:节点的深度 - 从树的根节点到该节点的边数节点的高度 - 该节点和叶子之间最长路径上的边数树的高度 - 其根节点的高度一个高度平衡的二叉搜索树(平衡二叉搜索树)是在插入和删除任何节点之后,可以自动保持其高度最小。也就是说,有 N 个节点的平衡二叉搜索树,它的高度是 logN 。并且,每个节点的两个子树的高度不会相差超过 1。为什么是 log... 什么是一个高度平衡的二叉搜索树?树结构中的常见用语:节点的深度 - 从树的根节点到该节点的边数节点的高度 - 该节点和叶子之间最长路径上的边数树的高度 - 其根节点的高度一个高度平衡的二叉搜索树(平衡二叉搜索树)是在插入和删除任何节点之后,可以自动保持其高度最小。也就是说,有 N 个节点的平衡二叉搜索树,它的高度是 logN 。并且,每个节点的两个子树的高度不会相差超过 1。为什么是 log...
- 矩阵置零(数组、哈希表)给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地(http://baike.baidu.com/item/原地算法) 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用... 矩阵置零(数组、哈希表)给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地(http://baike.baidu.com/item/原地算法) 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用...
- 搜索插入位置(数组、二分查找)给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解答:... 搜索插入位置(数组、二分查找)给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解答:...
- 给表达式添加运算符(数学、字符串)给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 **二元 **运算符(不是一元)+、- 或 * ,返回所有能够得到目标值的表达式。示例 1:输入: num = “123”, target = 6 输出: [“1+2+3”, “123”]示例 2:输入: num = “232”, target = ... 给表达式添加运算符(数学、字符串)给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 **二元 **运算符(不是一元)+、- 或 * ,返回所有能够得到目标值的表达式。示例 1:输入: num = “123”, target = 6 输出: [“1+2+3”, “123”]示例 2:输入: num = “232”, target = ...
- 外观数列(字符串)给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1 11 21 1211 111221 ... 外观数列(字符串)给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1 11 21 1211 111221 ...
- 文本左右对齐(字符串、模拟)给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空... 文本左右对齐(字符串、模拟)给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空...
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-7 算法训练 逆序对 平衡二叉树 前言 算法训练 逆序对 C语言 C++语言 Java语言 总结 第六届——第十三届省赛题解 第六届——第十二届省赛题解 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-7 算法训练 逆序对 平衡二叉树 前言 算法训练 逆序对 C语言 C++语言 Java语言 总结 第六届——第十三届省赛题解 第六届——第十二届省赛题解
- 初始化选择更新顶点进入S集合,T集合中移除折半查找适用于有序表分块查找①建立索引表,分块记录每一块的最大值②在索引表中查找,确定是在哪一块③块内进行顺序查找平均查找长度:ASL=Lb+Lw(索引表+块内)Lb = log2(n+1)(n:s总元素/每一块的元素 = 块)Lw = (s/2)(s:总元素)树表的查找二叉排序树左子树小于根、右子树大于等于根中序遍历是递增有序的序列递归查找最多比较... 初始化选择更新顶点进入S集合,T集合中移除折半查找适用于有序表分块查找①建立索引表,分块记录每一块的最大值②在索引表中查找,确定是在哪一块③块内进行顺序查找平均查找长度:ASL=Lb+Lw(索引表+块内)Lb = log2(n+1)(n:s总元素/每一块的元素 = 块)Lw = (s/2)(s:总元素)树表的查找二叉排序树左子树小于根、右子树大于等于根中序遍历是递增有序的序列递归查找最多比较...
- 无重复字符的最长子串(哈希表、字符串)给定一个字符串,请你找出其中不含有重复字符的 **最长子串 **的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出... 无重复字符的最长子串(哈希表、字符串)给定一个字符串,请你找出其中不含有重复字符的 **最长子串 **的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出...
- 二叉树的锯齿形层序遍历(树、广度优先搜索)给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7] ]解答:public class TreeNode... 二叉树的锯齿形层序遍历(树、广度优先搜索)给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7],3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7] ]解答:public class TreeNode...
- 1.二分法的循环条件总结:左闭右开的形式:循环条件一定是 while(left < right)。由于左闭,所以 left = mid + 1;。由于右开,所以 right = mid;。最后循环结束时,left == right 。左闭右闭的形式:循环条件一定是 while(left <= right)。由于左闭,所以 left = mid + 1;。由于右闭,所以 right = mid... 1.二分法的循环条件总结:左闭右开的形式:循环条件一定是 while(left < right)。由于左闭,所以 left = mid + 1;。由于右开,所以 right = mid;。最后循环结束时,left == right 。左闭右闭的形式:循环条件一定是 while(left <= right)。由于左闭,所以 left = mid + 1;。由于右闭,所以 right = mid...
- 原文链接使用C++构建一个二叉树并输出。 输入输入根节点为10,依次输入6、4、8、14、12、16代码如下:#include <stdio.h>#include <stdlib.h>#include <vector>#include<iostream>#include <stack> #include<cstdlib>#include <string>using namespace std... 原文链接使用C++构建一个二叉树并输出。 输入输入根节点为10,依次输入6、4、8、14、12、16代码如下:#include <stdio.h>#include <stdlib.h>#include <vector>#include<iostream>#include <stack> #include<cstdlib>#include <string>using namespace std...
- 原文链接使用C++构建一个二叉树并复制、输出。 程序#include <stdio.h>#include <stdlib.h>//#include <cstdio>#include <vector>#include<iostream>#include <stack> #include<cstdlib>#include <string>using namespace std;struct Tr... 原文链接使用C++构建一个二叉树并复制、输出。 程序#include <stdio.h>#include <stdlib.h>//#include <cstdio>#include <vector>#include<iostream>#include <stack> #include<cstdlib>#include <string>using namespace std;struct Tr...
- 六大类二叉树面试题汇总解答 六大类二叉树面试题汇总解答
- 树是n(n>=0)个节点的有限集合。当n=0时称为空树,当n>0 为非空树,任何非空树中,有且仅有一个根节点;其余节点可分为m(m>=0)个互不相交的有限集合T1、T2 等,其中每一个集合都可以称为一棵树,称为根节点的子树。 树是n(n>=0)个节点的有限集合。当n=0时称为空树,当n>0 为非空树,任何非空树中,有且仅有一个根节点;其余节点可分为m(m>=0)个互不相交的有限集合T1、T2 等,其中每一个集合都可以称为一棵树,称为根节点的子树。
上滑加载中
推荐直播
-
香橙派AIpro的远程推理框架与实验案例
2025/07/04 周五 19:00-20:00
郝家胜 -华为开发者布道师-高校教师
AiR推理框架创新采用将模型推理与模型应用相分离的机制,把香橙派封装为AI推理黑盒服务,构建了分布式远程推理框架,并提供多种输入模态、多种输出方式以及多线程支持的高度复用框架,解决了开发板环境配置复杂上手困难、缺乏可视化体验和资源稀缺课程受限等痛点问题,真正做到开箱即用,并支持多种笔记本电脑环境、多种不同编程语言,10行代码即可体验图像分割迁移案例。
回顾中 -
鸿蒙端云一体化应用开发
2025/07/10 周四 19:00-20:00
倪红军 华为开发者布道师-高校教师
基于鸿蒙平台终端设备的应用场景越来越多、使用范围越来越广。本课程以云数据库服务为例,介绍云侧项目应用的创建、新建对象类型、新增存储区及向对象类型中添加数据对象的方法,端侧(HarmonyOS平台)一体化工程项目的创建、云数据资源的关联方法及对云侧数据的增删改查等操作方法,为开发端云一体化应用打下坚实基础。
回顾中
热门标签