11k10 分钟

算法复杂度旨在描述 输入数据量 NNN 时,算法的 时间使用 和 空间使用 情况 时间:假设各操作的运行时间为固定常数,统计算法运行的 计算操作的数量 ,以代表算法运行所需时间 空间:统计在最差情况下 ,算法运行所需使用的 最大空间 输入数据大小 NNN 指算法处理的输入数据量,根据不同算法,具有不同的定义,例如: 排序算法:NNN 代表需要排序的元素数量 搜索算法:NNN 代表搜索范围的元素总数,例如数组大小、矩阵大小、二叉树节点数、图节点和边数等 # 时间复杂度 统计的是算法的 计算操作数量 ,而不是 运行的绝对时间 计算操作数量 和 运行绝对时间 呈正相关关系,并不相等
13k12 分钟

树:用来模拟具有树状结构性质的数据集合 二叉树 (Binary Tree):每个节点 最多有两个子树 的树结构,通常子树被称作 “左子树” 和 “右子树” 注意:二叉树必须严格区分左右子树,即使只有一棵子树,也要说明它是左子树还是右子树 # 二叉树的种类 # 满二叉树 满二叉树:一棵高度为 kkk 并具有 2k−12^k - 12k−1 个节点的二叉树 # 完全二叉树 完全二叉树:在满二叉树的最底层自右至左依次(注意:不能跳过任何一个节点)去掉若干个节点得到的二叉树 完全二叉树的特点: 所有的叶节点都出现在最低的两层上 对任一节点,如果其右子树的高度为 k ,则其左子树的高度为 kk
29k26 分钟

# 表达式基础 表达式 通常由 运算符 和 运算对象 组成 字面值 和 变量 是最简单的表达式 # 基本概念 一元运算符:作用于一个运算对象的运算符,如取地址符 & 和解引用符 * 二元运算符:作用于两个运算对象的运算符,如相等运算符 == 和乘法运算符 * 三元运算符:作用于三个运算对象,如条件运算符 _ ? _ : _ # 组合运算符和运算对象 表达式的求值结果,依赖于运算符的 优先级 、结合律 以及 运算对象的求值顺序 优先级:例如, * 优先级高于 + 结合律:通常是从左往右,遇到括号时则是由内到外 求值顺序:例如, f1() + f2()
14k12 分钟

# LeetCode 278. 第一个错误的版本 LeetCode 278 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n] ,你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。 示例 1: 输入:n 
3.3k3 分钟

二分查找 (binary search),也称折半搜索(half-interval search)、对数搜索(logarithmic search),是用来在一个有序数组中查找某一元素的算法 以在一个升序数组中查找一个数为例:它每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么查找右侧;如果中间元素大于所查找的值,查找左侧 时间复杂度: 最优时间复杂度为 O(1)O(1)O(1) 最坏和平均时间复杂度为 O(log⁡n)O(\log{n})O(logn) 空间复杂度: 迭代版本的二分查找算法,空间复杂度为 O(1)O(1)O(1)
40k36 分钟

# 命名空间的 using 声明 std::cin 的意思就是要使用命名空间 std 中的名字 cin using 声明具有如下的形式: using namespace::name;一旦声明了上述语句,就可以直接访问命名空间中的名字 例如: #include <iostream>// using declaration; when we use the name cin, we get the one from the namespace stdusing std::cin;int main() { int i; cin >&g
37k34 分钟

# 基本内置类型 C++ 定义了一套包括算术类型(arithmetic type)和空类型(void)在内的基本数据类型。其中,算术类型包含了字符、整数型、布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合,例如最常见的是,当函数不返回任何值时使用空类型作为返回类型。 # 算术类型 算术类型分为两类:整型(integral,包括字符和布尔类型在内)和浮点型。 类型 含义 最小尺寸 bool 布尔类型 未定义 char 字符 8 位 wchar_t 宽字符 16 位 char16_t Unicode 字符 16 位 char32_t Unicode 字符 3
11k10 分钟

每个 C++ 程序都包含一个或多个函数(function),其中一个必须命名为 main 操作系统通过调用 main 来运行 C++ 程序 在多数系统中, main 函数的返回值用于指示状态:返回值 0 表示成功,非 0 返回值通常用来指出错误类型 当 return 语句包括一个返回值时,该返回值的类型必须与函数返回类型相容,如 main 函数的返回值 0 是 int 类型的值 # 编译、运行程序 源文件:后缀为 .c 、 .cxx 、 .cpp 、 .cp 、 .c 的程序文件 可执行文件: Windows 系统: .exe 文件 UNIX 系统: .ou
1.1k1 分钟

# vscode 快捷键 # 主命令框 Ctrl + Shift + P: 打开命令面板 # 编辑器与窗口 Ctrl + K, V: 打开预览面板 Ctrl + `: 打开 / 关闭终端 Ctrl + Tab: 文件之间切换 Ctrl + W: 关闭当前窗口 # 代码编辑 Ctrl + F: 查找 Ctrl + H: 查找替换 Ctrl + Shift + T: 重新打开刚关闭的编辑页面 Ctrl + Backspace: 删除上一个单词 Ctrl + N: 新建文件 Ctrl + S: 保存 # 光标 Home: 光标移动至行首 End: 光标移动至行末 Ctrl + Ho
9k8 分钟

# 前期准备 # 安装 git 下载:https://git-scm.com/download 安装:除了选择安装路径外,一直点 next 就行 可参考教程 https://blog.csdn.net/hahameier/article/details/86312530 # 安装 node.js 下载:https://nodejs.org/en/ 安装:除了选择路径以外,一直点 next 就行 # hexo 环境搭建 # 进入命令行 打开命令行窗口:按 w