- 博客(26)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 队列算法题---如何设计一个排序系统
设计一个排队序列,能够让每个进入队伍的用户看到自己在队列中所处的位置和变化,队伍中随时有人加入和退出;当有人退出影响到用户排名时,需要及时的反馈。解析:既然是排队序列,那么加入只能排在队尾。所以,他不会影响到原先所有人的排序。但是,有人退出时需要注意,队头的人和队中间的人退出才会影响用户排名,队尾的人走了,不会影响到前面所有的人。因此,我们需要构造两个类,一个用来描述客户,当前的排序,和其本身属性。另一个类用来描述排队的这个事件,如有人加入,有人离开以及实时更新当前用户排序状态。from collec
2020-08-12 19:40:28
273
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 小白超详细 ---数据结构和算法总结(一)
在算法图解中主要涉及的数据结构是:数组链表队列栈散列表在算法图解中主要涉及的算法是:二分查找选择排序快速排序递归广度优先搜索贪婪算法k邻近算法数组...
2020-07-24 20:16:35
164
原创 大电容并联小电容
滤波问题属于考虑频域的事情,每个元件的频域特性不一样。大小电容的功耗可以叠加,可以换算为等效电容计算。所以,常用大电容并联小电容进行滤波。单纯记录一下自己对于。
2023-11-17 16:00:48
108
原创 基于C#的上位机开发——串口工具
界面如下图源代码如下using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO.Ports;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespa
2022-05-06 18:09:22
515
原创 PADS相关问题
PADS相关问题如何更新PCB中的元器件如何TOP/BOTTOM打过孔到GND/POWER走线如何PCB中导入机械孔安装孔如何修改封装的2D线线宽如何更新PCB中的元器件原理图部分更新元器件后,新建一个PCB导入新的网表,记作P1。将原来的PCB,记作P0。layout-工具-对比/ECO,P0和P1生成的ECO文件,进行导入,便可以更新。如何TOP/BOTTOM打过孔到GND/POWER走线关于打过孔到不同的层,进行布线,需要进行如下图的设置。设置TOP层打过孔到POWER层,再进行布线。如何
2022-05-05 12:13:18
227
原创 如何把二叉树转化成双向链表
题目输入一棵二元查找树,将该二元查找树换成一个排序的双向链表。ps:::二元查找树是左子树存在则左子树所有节点都小于它的根节点。右子树若存在则右子树节点均大于他的根节点。为了方便大家理解,我先回顾双向链表。双向链表,包含数据,指向上一个节点的指针,指向以一个节点的指针class Lnode(): def __init__(self): self.data=None self.next=None self.prev=None二叉树,包含根的数据,连接该节点的左子树,连接该节点的右子树
2020-08-17 15:29:12
350
原创 如何判断两二叉树是否相等
两棵二叉树相等是指两棵二叉树有着相同的结构,并且在相同位置的节点有相同的值。class Btree(): def __init(self): self.data=None self.lchild=None self.rchild=Nonedef isequal(t1,t2): if t1!=None and t2==None: return False if t1==None and t2!=None: return False if t1==None and t2==Non
2020-08-17 10:25:55
343
原创 如何从顶部开始逐层打印二叉树节点数据
前面几篇文章讲了从数组到二叉树,如arr=[1,2,3,4,5,6,7,8,9,10]到如下图所示的二叉树。如果要逐层打印节点,就是层序遍历。from collections import dequeclass Btree(): def __init__(self): self.data=None self.lchild=None self.rchild=Nonedef printlayerTree(tree): if tree==None: return None else:
2020-08-14 16:28:27
213
原创 二叉树的先序遍历,中序遍历和后序遍历。
先序:根左右中序:左根右后序:左右根class Btree(): def __init__(self): self.data=None self.lchild=None self.rchild=None####先序 def printfontorder(tree,re=[]): if tree==None: return re else: re.append(tree.data) printfontorder(tree.lchild) printfontorder
2020-08-14 15:55:39
202
原创 如何把一个有序的整数数组放到二叉树中
思路:如何将数组放进去,就要用到递归的思想啦。将数组分成两部分一部分构成左子树,一部分构成右子树。如【1,2,3,4,5,6,7,8,9,10】 6 1,2,3,4,5 7,8,9,10 6 3 912 45 78 10以此类推。便可以构成二叉树了class Bt
2020-08-14 11:14:16
647
2
原创 二叉树常用的基础知识
二叉树BinaryTree,它是有限个元素的集合,由一个称为根和两个不相交的,分别被称为左子树和右子树的二叉树组成。一些常见的基本概念:结点的度。结点所拥有子树的个数叶子结点。度为0的结点,为叶子节点。。。。。不想码了,大家随便一百度就有了写点自己想写的八八八###链式存储结构class Bintree(): def __init__(self): self.data=None self.lchild=None self.lright=None...
2020-08-14 10:56:47
99
原创 如何从数组中找出满足a+b=c+d的两个数对
题目:给定一个数组,判断数组中是否有两个数对(a,b)和(c,d),使得a+b=c+d,a,b,c,d是不同的元素。如果多个答案,打任意一个即可。解析:最残暴的方法就是直接四重遍历,但是,这样的话时间复杂度太高了,基本出题的意义也没了。我们可以用字典法,算法还是要用到遍历,但是,遍历的是数对。将数对的和作为键,将数对作为值。class Pair(): def __init__(self,first,second): self.first=None self.second=None self
2020-08-13 14:55:07
817
1
原创 实现LRU缓存方案的算法
什么是LRU?LRU是 least recently used 的缩写,就是指在最近最少使用。换句话说,就是在规定的缓存内,记录如浏览过的页面等,当页面超出缓存大小时,就会扔掉最早的缓存页面。解析:从LRU方案看,首先我们要有一个设定大小的数据结构,当存放新的页面时,要分成两种情况。第一种:新的页面不在当前的缓存区域,那么,接着判断这个缓存区是否已经满了,如果满了就删除最早的数据。第二种,新的页面A在当前缓存区,说明是用户重新又返回去看那个页面A,那么,存在缓存区的A需要重新拿出来,放在最前面。其他缓存
2020-08-13 10:55:08
132
原创 栈的相关算法问题----如何用两个栈模拟队列操作
用两个栈模拟队列,首先,要清楚两个数据结构的特点。栈是先进后出而队列是先进先出。显然,一个栈是没有办法实现队列的功能,这里我们需要一个插入栈,和一个弹出栈。插入栈执行队列的插入功能,弹出栈执行队列的弹出功能。class Stack(): def __init__(self): self.items=[] def is_empty(self): return len(self.items)==0 def pop(self): if self.is_empty(): print("栈空
2020-08-12 09:57:06
159
原创 栈中常见算法问题---如何用O(1)的时间复杂度求栈中最小的元素
问题三:如何用O(1)的时间复杂度求栈中最小的元素一般求一个数组,一个列表中的最值问题,我们第一反应是遍历。但是题中要求了O(1)的时间复杂度,那我们就不能采用遍历的方法,以为遍历的通常是O(N)。为了降低时间复杂度,我们就要用空间换时间。建立一个新的栈,专门用来放每次有元素入栈时的最值,最后输出最值栈的栈顶,时间复杂度满足要求。class Stack(): def __init__(self): self.items=[] def is_empty(self): return len(se
2020-08-11 15:57:41
329
原创 栈中常见问题---如何根据入栈序列判断可能出栈序列
问题二 如何根据入栈序列判断可能出栈序列如入栈的子序列是{1-2-3-4-5},那么出栈的顺序有可能是{3-2-5-4-1}么?当然可以啦,我们这么想,首先,栈是先进后出,一般先出栈顶的元素。那么我们依次将输入序列入栈,并判断入栈以后的栈顶元素是否等于出栈序列的第一个元素,那么就将入栈的元素pop出。最后,看入栈的所有元素是否已经pop出。并且出栈的序列是否全部划过。class Stack(): def __init__(self): self.items=[] def is_empty(se
2020-08-11 15:11:20
1367
原创 栈中常见的算法题---翻转栈的所有元素(1)
今天主要写一些关于栈的常见算法问题如何翻转栈的所有元素如何根据入栈序列判断可能出栈的序列如何用O(1)的时间复杂度求栈中最小的元素问题一 如何翻转栈的所有元素例如输入序列是{1,2,3,4,5},1是栈顶元素。翻转以后的栈为{5,4,3,2,1},5 为栈顶元素。NOTE:这里我们用到递归的思想,把栈底元素与放到栈顶的位置如 {51234}-{54123}-{54312}-(54321)#先定义一个栈class Stack(): def __init__(self): sel
2020-08-11 11:14:45
331
原创 计算机网络原理(一)
初识计算机网络计算机网络是一个将分散的,具有独立功能的计算机系统,硬件,通过通信设备和线路连接起来的,有功能完善的软件实现资源共享和信息传递。总体来看,一个完整的计算机网络由硬件,软件和协议三大部分组成。硬件方面,毫无疑问包含计算机啊,通信链路(光纤,双绞线),交换设备(路由器,交换机)和通信处理机(网卡)等。软件多属于应用层,方便用户操作的。协议是计算机网络的核心。因为将一个个的计算机构成一个网络,就是为了资源共享和信息传递,需要出现一个“交通规则”使得网络正常运行。计算机网络的分类广域网(
2020-08-09 17:37:43
345
原创 小白超详细总结----数据结构与算法(三)
如何实现栈栈中先进去的数最后被弹出。class Stack(): def __init__(self): self.items=[]###采用数组的方式实现栈,栈空间结构连续 def is_empty(self): return len(self.items)==0 def top(self):#弹栈 if not self.is_empty(): return self.items[len(self.ite
2020-08-09 15:42:55
109
原创 小白超详细总结----数据结构与算法(二)
上一章我们将到了单链表,这里我们将提到双链表和单项循环列表,以及其对应的一些内置方法。双链表单链表的每个节点只能记录下一个节点的位置,而双链表的节点不仅可以记录下一个节点也可以记录上一个节点。所以,节点有三个属性–pre (指向上一个节点)–data(节点的值)–next(指向下一个节点)。class Node(): def __init__(self,data): self.pre=None self.data=data self.next=None在双链表中的一些常用内置方法,一
2020-07-25 19:49:22
102
1
原创 如何把链表相邻元素翻转---python
题目:例如给定链表为1->2->3->4->5->6->7,翻转结果为2->1->4->3->6->5->7。思路:虚线指next域指向变化。改变next指向直接调换顺序。"""Created on Fri Jul 3 09:25:53 2020@author: Melanie"""class Lnode(): def __init__(self,x): self.data=x
2020-07-03 11:01:20
205
原创 如何找出单链表中的倒数第k个元素
# -*- coding: utf-8 -*-"""Created on Thu Jul 2 10:31:18 2020@author: Melanie"""class LNode(): def __init__(self,x): self.data=x self.next=None def ConstructList(): i=1 head=LNode(None) head.next=
2020-07-03 09:42:40
117
原创 单链表代数和---python
# -*- coding: utf-8 -*-"""Created on Wed Jul 1 15:05:12 2020@author: Melanie"""class Listnode(): def __init__(self,x): self.data=x self.next=Nonedef add(h1,h2): if h1==None or h1.next==None: return h2 if h2==N..
2020-07-03 09:40:54
92
原创 字符模型
卷积神经网络(简称CNN)是一类特殊的人工神经网络,是深度学习中重要的一个分支。CNN在很多领域都表现优异,精度和速度比传统计算学习算法高很多。特别是在计算机视觉领域,CNN是解决图像分类、图像检索、物体检测和语义分割的主流模型。CNN每一层由众多的卷积核组成,每个卷积核对输入的像素进行卷积操作,得到下一次的输入。随着网络层的增加卷积核会逐渐扩大感受野,并缩减图像的尺寸下图为一个例子...
2020-05-26 23:00:29
269
原创 数据的加载与扩增
在进行训练前,我们首先是保证数据的可用性,要进行数据清洗等操作。为了保证训练模型的准确率,需要进行扩增。比如:几何转化,颜色改变,通道改变等。train_path = glob.glob(’…/input/train/*.png’)train_path.sort()train_json = json.load(open(’…/input/train.json’))train_label = [train_json[x][‘label’] for x in train_json]print(le
2020-05-23 23:10:03
186
原创 计算机视觉-图像检索
计算机视觉-图像检索初识图像检索什么是图像检索图像检索的特征选取实际案例分析街景字符编码识别初识图像检索什么是图像检索当我们在搜索引擎输入“法斗”时,网页会出现很多的关于法斗的图片,这个可以理解为图片检索。此外,当我们喜欢一个东西却不知道它的购买链接时,我们可以拍下来在网上搜索,如百度识图,淘宝识图。这位两种情况都是图片检索,一个是文字检索,一个是根据图片内容进行检索。图像检索的特征选取小孩只见过“法斗”,“比熊”的话,当他出门玩耍的时候看见了“金毛”,他肯定能推断出这是一只狗,而不会想这是一只
2020-05-20 16:05:05
620
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人