自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 场效应管电机驱动-MOS管H桥原理

场效应管电机驱动-MOS管H桥原理所谓的H 桥电路就是控制电机正反转的。下图就是一种简单的H 桥电路,它由2 个P型场效应管Q1、Q2 与2 个N 型场效应管Q3、Q3 组成,所以它叫P-NMOS 管H 桥。桥臂上的4 个场效应管相当于四个开关,P 型管在栅极为低电平时导通,高电平时关闭;N 型管在栅极为高电平时导通,低电平时关闭。场效应管是电压控制型元件,栅极通过的电流几乎为“零”。正因为这个特点,在连接好下图电路后,控制臂1 置高电平(U=VCC)、控制臂2 置低电平(U=0)时,Q1、Q4 关闭

2021-01-12 15:31:45 1762

原创 模电学习总结

初步学习数电基本元器件介绍二极管稳压二极管;稳压二极管,英文名称Zener diode,又叫齐纳二极管。利用pn结反向击穿状态,其电流可在很大范围内变化而电压基本不变的现象,制成的起稳压作用的二极管。 [1] 此二极管是一种直到临界反向击穿电压前都具有很高电阻的半导体器件.在这临界击穿点上,反向电阻降低到一个很小的数值,在这个低阻区中电流增加而电压则保持恒定,稳压二极管是根据击穿电压来分档的,因为这种特性,稳压管主要被作为稳压器或电压基准元件使用。稳压二极管可以串联起来以便在较高的电压上使用,

2021-01-09 20:11:58 597

原创 C语言中<<、>>、&、|的实际用途

记个笔记摘自小红书作为一个开发人员,在看别人项目或者看第三方库的源代码时,可能经常会看到譬如a>>4&0x0f这样的写法,对于一些初入行的童鞋来说可能就不是太明白这是什么意思。下面我们就来讲解这几个运算符的实际用途。一、运算符的含义运算符 含义 描述二、用途按位与的用途1.清零若想对一个存储单元清零,即使其全部二进制位为0,只要对这个存储单元当前的值取反(也就是原来的数中为1变为0,0变为1),然后使二者进行&运算,即可达到清零目的。比如a=23,b=~a:a

2021-01-04 21:32:04 2806

原创 几个笔记 1.-简易PID算法的快速扫盲

1.https://mp.weixin.qq.com/s/rHnfzIh4gF6gYBmmyGKeyA

2020-12-26 10:52:52 153

原创 带你深入理解kmp

当p[j]!=p[k]时我们要找的就是j+1位前面的子串,即p[0~j]的最大重复子串长度。就是说找到一个最长的子串,假设最长重复子串长度为k1,即p[0~k1-1],使得p[0~k1-1]===p[j+1-k1~j],此时k1即为所求的位置即next[j+1]=k1;因为p[k]!=p[j]了,因此k1最大等于k,即最大可能的重复子串只可能是p[0~k-1]里的子串。此时我们人工求解的话,显然就是从p[0~k-1]里求解最大重复子串。我们按照第2节介绍的查找最长重复子串的方法:从p[0~k-1]里,第

2020-12-18 19:19:41 122 1

原创 关于堆的一点小结,堆都有哪些应用呢还需总结

参考自:https://zhuanlan.zhihu.com/p/63089552何为堆?堆是一种特殊的树,只要满足下面两个条件,它就是一个堆:(1)堆是一颗完全二叉树;(2)堆中某个节点的值总是不大于(或不小于)其父节点的值。其中,我们把根节点最大的堆叫做大顶堆,根节点最小的堆叫做小顶堆。我们可以看见,完全二叉树的节点都是比较紧凑的,且只有最后一层是不满的,所以使用数组是最节省空间的,比如上面这颗完全二叉树我们可以这样存储。我们下标为0的位置不存储元素,从下标为1的位置开始存储元素,每层依

2020-12-17 12:01:31 384

原创 笔记总结养成习惯

在一个串中查找是否出现过另一个串,这是KMP的看家本领

2020-12-16 22:00:19 126

原创 leetcode关于链表的总结,第203题:移除链表元素、第707题:设计链表、第206题:反转链表、第142题.环形链表II

参考自代码随想录基础知识:链表的定义单链表双链表循环链表链表的基本操作:删除节点添加节点第203题:移除链表元素第707题:设计链表题意:在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。addAtTail(val):将值为 val 的节点追加到链表的最后一个元素。addAtIndex(index

2020-12-10 22:29:40 98

原创 leetcode数组相关,35:搜索插入位置,以这个题来参悟二分法 、编号:27. 移除元素、209.长度最小的子数组、题目59.螺旋矩阵II、

参考自 代码随想录数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址二位数组中其实是一个线性数组存放着 其他数组的首地址,其只是由一条条连续的内存地址组成。编号35:搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输

2020-12-09 18:38:22 79

原创 leetcode二叉树5,235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操、450.删除二叉搜索树中的节点、669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538

参考自代码随想录:235. 二叉搜索树的最近公共祖先链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: roo

2020-12-08 19:17:18 106

原创 leetcode二叉树4,617.合并二叉树,700.二叉搜索树中的搜索、98.验证二叉搜索、530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

617.合并二叉树给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。class Solution {public: TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { if (t1 == NULL) return t2; // 如果t1

2020-12-07 22:04:10 81

原创 leetcode二叉树,404.左叶子之和、513.找树左下角的值、112. 路径总和、113. 路径总和II、106.从中序与后序遍历序列构造二叉树、105. 从前序与中序遍历序列构造、654

摘自代码随想录 加上自己的一点点思考。404.左叶子之和计算给定二叉树的所有左叶子之和。示例:思路:其实刷到这里对于前中后遍历应该比较熟悉了,这里就用后序遍历非常好,然后加几个边界条件设置。后序遍历,从后面开始算==class Solution {public: int sumOfLeftLeaves(TreeNode* root) { if (root == NULL) return 0; int leftValue = sumOfLeftLeav

2020-12-06 17:42:10 121

原创 递归思路

这里帮助大家确定下来递归算法的三个要素。「每次写递归,都按照这三要素来写,可以保证大家写出正确的递归算法!」**「确定递归函数的参数和返回值:」**确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。**「确定终止条件:」**写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。**「

2020-12-04 18:04:36 138 1

原创 二叉树最近几题总结:101.对称二叉树,104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数、110.平衡二叉树 、257. 二叉树的所有路径

先说思路:即让左右的结点一个个对应即可,可以利用两个子树一 一遍历。做到每个都遍历一遍。然后一一对应。

2020-12-04 18:01:01 141

原创 关于leetcode中的高度和深度的概念

摘自代码随想录二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。但leetcode中强调的深度和高度很明显是按照节点来计算的,如图:...

2020-12-04 16:50:39 142

原创 关于层序遍历和二叉树翻转-leetcode 102,107,199,637,429。

class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { queue<TreeNode*> que; if (root != NULL) que.push(root); vector<vector<int>> result; while (!que.empty()) {

2020-11-30 21:17:32 83

原创 二叉树的前中后遍历(递归+迭代)

参考自代码录总结二叉树顺序结构和数据结构的定义:树里面有双亲表示法,孩子表示法,孩子兄弟表示法。对于树中的二叉树结构来说,有顺序存储结构,链式存储结构。代码如下:顺序存储结构typedef struct{ int level,order; /* 结点的层,本层序号(按满二叉树计算) */}Position;TElemType Nil=0; /* 设整型以0为空 */Status visit(TElemType c){ printf("%d ",c); return OK;

2020-11-30 20:15:00 64

转载 leetcode哈希表总结,题:242.有效的字母异位词、第349题. 两个数组的交集 第202题. 快乐数、第1题. 两数之和、第454题.四数相加II、 第15题. 三数之和

这里参考自公众号代码随想录哈希表常见的三种哈希结构当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。数组set (集合)map(映射)std::unordered_set底层实现为哈希表,std::set 和std::multiset 的底层实现是红黑树,红黑树是一种平衡二叉搜索树,所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增std::unordered_map 底层实现为哈希表,std::map 和std::multima

2020-11-28 11:37:54 145

转载 value_type的真正用途是什么?

书上说在不知道容器里元素类型时可以使用value_typevector::value_type i = 5;这个value_type和auto有几分相似。下面这部分转载:刚学C++ Primer的时候,经常看见书上说,使用容器的时候,尽量用value_type是个好习惯,觉得比起直接写类型,麻烦很多,所以并不是很能理解,看模板的时候终于明白了为什么所有容器都要定义一个value_type了。现在来看看value_type到底有什么用。首先定义两个包装容器,只是对任意类型的值进行了一层包装而已。

2020-11-25 23:43:48 2230

转载 一些STL总结

几个思想:1.一点要养成一个良好的习惯,边学习,边总结,以便自己能及时复习,提高效率。2.在总结的这个过程之中,勤加思考且记,不要为了总结而总结,一定要多加思考。https://blog.csdn.net/u010183728/article/details/81913729这篇博客写的很棒!...

2020-11-25 23:36:17 102

原创 leetcode加油站问题总结

思路一官方给的数学公式推导后的代码:思路是:我们首先检查第 00 个加油站,并试图判断能否环绕一周;如果不能,就从第一个无法到达的加油站开始继续检查。只需要选择性的记忆上一次不能够到达的位置,就可以化提升暴力的效果。class Solution {public: int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { int n = gas.size();

2020-11-18 19:26:42 246

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除