STM32 时钟设置 时钟设置时钟树介绍有以下三种时钟可以作为系统时钟(SYSCLK):HSI 振荡器时钟HSE 振荡器时钟PLL 时钟时钟树如下:OSC_OUT 和 OSC_IN 为外部晶振的接口,为 HSE(高速) 提供振荡源,接 4 -16 MHz 的晶振;OSC32_OUT 和 OSC32_IN 为外部晶振的接口,为 LSE(低速) 提供振荡源,接 32.768 kHz 的晶振。其...
红黑树 红黑树从 234 树 到 红黑树:https://blog.csdn.net/asdfsadfasdfsa/article/details/86500552定义2-3-4 树和红黑树是完全等价的,由于绝大多数编程语言直接实现2-3-4树会非常繁琐,所以一般是通过实现红黑树来实现替代2-3-4树,而红黑树本也同样保证在O(lgn)的时间内完成查找、插入和删除操作。红黑树是每个节点都带有颜色属...
STM32 的位带操作理解 位带操作 为什么要用位带操作?32位处理器一次能处理4个字节即32位,不能直接对位操作,而我们需要更方便、更快捷、更安全的设置或读取地址中的内容。 什么是位带操作?地址空间的有一个 512MB 范围由片上外设(的寄存器)使用。这个区通过系统总线来访问。在这个区的下部,有一个 1MB 的区间,被称为“位带区”。该位带区还有一个对应的、 32MB 的“位带别名(alias)区”,容纳了...
verilog HDL 的环境搭建 环境搭建安装Icarus Verilog 和 GTKwave由于Icarus Verilog中已经包含了GTKWave所以直接从http://bleyer.org/icarus/下载安装,这里提供的为Windows版,我下载的为当前时间最新版:iverilog-10.1.1-x64_setup.exe,整个安装包才9.77MB,安装后也只有不到50MB。经测试,其实安装后只要把安装所在目...
BaiduPCS-Go 下载百度云资源的相关问题 BaiduPCS-Go 为开源项目,仿 Linux shell 文件处理命令的百度网盘命令行客户端:https://github.com/iikira/BaiduPCS-Go下载可在项目地址下载,也可以在下面的地址下载:链接:https://eyun.baidu.com/s/3htYoJIk 密码:laod使用下载完毕后可以存放到任何位置,建议存放到无中文目录内。...
flamingo 项目搭建问题处理 项目地址:https://github.com/baloonwj/flamingo#dev-tools-dependenciesCentos 6 安装 Mysql首先查看下你服务器,检查是否已经安装了mysql 命令:yum list installed | grep mysql若是已有安装的,那么会出来安装好的列表,否则为空,若发现有自带的mysql,移除命令:...
二叉树的线索化 /*Tree: A B C D E F G H I 前序遍历:ABDGHCEIF前序输入:ABDG##H###CEI###F## */#include <iostream>#include <queue>#include <stack>using namespace...
二叉树的遍历 二叉树的遍历有前序、中序、后序以及层序遍历。相关原理可参考下面的博客:https://blog.csdn.net/monster_ii/article/details/82115772https://blog.csdn.net/qq_29542611/article/details/79372678我在此在总结一下:先序遍历: 递归到二叉树的最左子树,然后以 顶点-->...
C++ ---- 类的构造函数与析构函数 构造函数每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的任务是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。构造函数是特殊的成员函数,用来保证每个对象的数据成员具有合适的初始值。构造函数名字与类名相同,不能指定返回类型(也不能定义返回类型为void),可以有0-n个形参。在创建类的对...
Leetcode ---- 397. 整数替换 题目:给定一个正整数 n,你可以做如下操作:1. 如果 n 是偶数,则用 n / 2替换 n。2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。n 变为 1 所需的最小替换次数是多少?示例 1:输入:8输出:3解释:8 -> 4 -> 2 -> 1示例 2:输入:7输出:4解释:7 -> 8 -&g...
Leetcode ---- 477. 汉明距离总和 题目:两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)所以答案为:HammingDistance(4, 14) + HammingDistance(4...
C++ ---- 类初涉 什么是类?类的基本思想是数据抽象和封装。数据抽象是一种依赖于接口和实现分离的编程(以及设计)技术。类的接口包括用户所能执行的操作;类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。封装实现了类的接口和实现的分离。封装后的类隐藏了它的实现细节,也就是说,类的用户只能使用接口而无法访问实现部分。类要想实现数据抽象和封装,需要首先定义一个抽象数据类型。在抽象数...
Leetcode ---- 306. 累加数 题目:累加数是一个字符串,组成它的数字可以形成累加序列。一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。给定一个只包含数字 '0'-'9' 的字符串,编写一个算法来判断给定输入是否是累加数。说明: 累加序列里的数不会以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。示例 1:输入: ...
Leetcode ---- 组合总和 题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target = 7,...
Leetcode ---- 组合总和 题目:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target = 7,...
Leetcode ---- 46. 全排列 题目:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路:该题采用回溯的方法。将问题简化,即得到两个元素的全排列。那么就将两个元素交换位置,推入栈中,再回溯。由此,我们就可以写出递归公式。程...
Leetcode ---- 78. 子集 题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]思路:对于这道题,有两个思路。第一个就是用 dfs 。逐个推入栈直到边界...
Leetcode ---- 78. 子集 题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]思路:对于这道题,有两个思路。第一个就是用 dfs 。逐个推入栈直到边界...
Leetcode ---- 77. 组合 题目:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]思路:看到该题的第一个反应就是用 n 个 for 循环,得到所有包含 k 个数的解,再去重。然而时间复杂度太高,我们需要采用相对...