自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

williamgavin的博客

Study hard and make progress every day.

  • 博客(154)
  • 资源 (3)
  • 收藏
  • 关注

原创 3D点云资料(笔记自用)

数据集:Pointnet_Pointnet2_pytorchPointnet语义分割任务S3DIS数据集上的注意点

2022-03-15 20:23:17 610

原创 机器学习(三) --- DT(Decision Tree)

文章目录Decision TreeIntroductionConstructing Decision TreesexamplePruning决策树、随机森林和Gradient BoostingReference:Decision Tree本文并不是给零基础的人看的哈,看之前需要了解一下啥是决策树。Introduction决策树是一种根据给定数据集产生一系列规则组成一棵树的算法。一般来说,数据集中样本的特征包括两类:一类是数值属性,另一类是分类属性。在一棵决策树中:内部结点表示属性边表示一种

2022-02-08 11:41:41 1954

原创 机器学习(二)--- KNN(K-Nearest Neighbors)

KNNK-Nearest Neighbors简单类比(Simple Analogy)KNN:通过你周围的人来判断你是哪一类人Tell me about your friends(who your neighbors are ) and I will tell you who you are背景KNN - K-Nearest Neighbors 别名:Memory-Based ReasoningExample-Based ReasoningInstance-Based Learnin

2022-02-01 22:05:13 1366

原创 kmp算法的c/c++实现

又看了一下kmp算法,资料是阮一峰的博客和b站一个博主(正月点灯笼)的视频。下面代码注释的部分是正月点灯笼视频里面的写法,自己感觉有点太麻烦,改了一种写法,只是写法变了而已。具体原理请参见相关文章和视频。代码如下:# include <iostream># include <cstring>using namespace std;/* * 第一版本void...

2020-04-27 20:21:24 424

原创 上手快慢指针,看着一篇就够了

文章目录缘起什么是快慢指针本文核心问题一:为什么快指针每次移动2,慢指针每次移动1?情况一:环为奇数情况二:环为偶数问题二:如何判断环的入口结点和环大小结束语reference这篇博客讨论一下常见的快慢指针算法缘起自从刷leetcode以来,已经碰见过很多次应用快慢指针算法的题目了,但是每次都是直接刷过,并没有好好思考为什么要这么做,这篇博文来探讨一下快慢指针一些常见的问题,了解这些问题可能...

2020-04-16 19:16:26 1620 1

原创 c++的命名返回值优化问题

文章目录背景知识问题引出问题解决reference背景知识copy构造函数在以下三种情况下会调用:对象初始化函数形参值传递返回局部对象问题引出看c++运算符重载时碰到一个问题,代码如下,文件名为operatorTest.cpp,重点看看operqtor+这个函数。# include <iostream>using namespace std;class dem...

2020-04-13 10:31:25 244

转载 写树算法的套路框架

来自于:写树算法的套路框架解题思路:二叉树算法 设计的总路线:明确一个节点要做的事情,然后剩下的事抛给框架。PS:关于数学习算法和据结构的框架思维,参见我的这篇文章Javavoid traverse(TreeNode root) { // root 需要做什么?在这做。 // 其他的不用 root 操心,抛给框架 traverse(root.left); t...

2020-02-13 10:41:14 435

原创 leetcode -- 540(哈希C实现)

有序数组中的单一元素题目描述给定一个只包含整数的有序数组,每个元素都会出现两次,唯有一个数只会出现一次,找出这个数。示例 1:输入: [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: [3,3,7,7,10,11,11]输出: 10解题方法纯粹是为了哈希而哈希。这题哈希绝不是最佳答案!!!代码根据评论改的struct Linknode{ in...

2020-02-10 14:42:39 403

原创 字符串哈希

假设字符串全部由小写字母组成,给定字符串两个子串位置的开始和结束下标,判断这两个子串是否相等。思路是这样的:将a-z与1-26对应,将字符串对应于一个特定的整数,现在若要判断两个子串是否相等,只需判断这两个整数是否相等,如果这两个整数相等,那么这两个字符串有很大概率相等,如果这两个整数不相等,那么这两个子串必不相等。那么字符串对应的整数是多少呢?如何计算这样每个字符串对应的整数就找出来了...

2020-02-10 12:24:17 543

原创 兔子与兔子(下一篇解释原理:字符串哈希)

文章目录兔子与兔子题目描述解题思路兔子与兔子题目描述很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA...

2020-02-10 12:20:25 393 2

原创 leetcode -- 27、28(mark)

文章目录27.移除元素题目描述解题方法28.实现strStr()题目描述解题方法27.移除元素题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 num...

2020-02-07 10:16:49 146

原创 leetcode -- 23 mark

文章目录23.合并k个有序链表(hard)题目描述解题方法23.合并k个有序链表(hard)应该属于hard里面的easy题吧题目描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5-...

2020-02-06 10:30:03 230

原创 leetcode -- manacher算法(c语言实现)

manacher算法是用来处理最大回文子串时间复杂度最少的算法,为O(n);上一篇文章说的中心扩展算法时间复杂度为O(n^2),遍历O(n),对每个元素都中心扩展时间复杂度O(n)。关于manacher算法的原理可以参考(也是我今天找的比较好的资料):湘潭大学2019年ACM集训专题-manacher&回文树这个看完manacher就好了,大概二十来分钟,看两遍。[译+改]最长回文...

2020-01-31 14:44:54 641

原创 字符串匹配算法KMP

文章目录什么是字符串匹配最容易想到的字符串匹配算法KMP算法部分匹配表什么是字符串匹配通俗的将就是在一个字符串a里面寻找另外一个字符串b,并在a中返回b的位置。比如下下面这个例子:str a = “bacbababacabcab”;str b = “ababaca”;最容易想到的字符串匹配算法跟据字符串匹配的过程,最容易想到的应该是这样:首先比较a[0]和b[0],如果相同,继续比较a...

2019-08-22 17:54:06 230

原创 2019全国大学生电子设计竞赛(记)

大三上期开始准备考研,暑假由于学院参加全国大学生电子设计竞赛(b题),又被拉了回来。到今天,四天三晚的比赛以及我们测试都已结束。---- 2019/8/15中午...

2019-08-15 11:30:28 3823

原创 《人性的弱点》佳句收藏

卡耐基《人性的弱点》中一些富有哲理的句子。每天更新day 01:that it is foolish to scold. I have enough trouble overcoming my own limitations without fretting over the fact that God has not seen fit to distribute evenly the gi...

2019-05-16 22:28:50 1904

原创

文章目录树数的基本概念树的定义基本术语树的性质树的存储结构双亲表示法孩子表示法孩子兄弟表示法二叉树二叉树的定义二叉树的形态二叉树的性质特殊二叉树满二叉树完全二叉树完全二叉树的特点完全二叉树性质二叉树的存储顺序存储链式存储结构二叉树的遍历先序遍历中序遍历后序遍历层次遍历线索二叉树线索化树、二叉树、森林森林与二叉树的转换树和森林的遍历树的遍历森林的遍历树和二叉树的应用参考资料树是一类非线性数据结构,...

2019-02-26 15:06:42 340

原创 矩阵的存储

文章目录前言矩阵的压缩存储特殊矩阵对称矩阵三角矩阵对角矩阵稀疏矩阵系数矩阵的定义三元组顺序法行逻辑链接的顺序表十字链表总结参考资料前言字符串的操作先放一放,KMP算法有点不理解。这一章名字应该是数组和广义表的,但是我感觉矩阵的存储是最陌生的,写这个吧。这篇文章关注的重点是矩阵如何存储,而不是矩阵的运算。矩阵的压缩存储矩阵的每一个元素叫矩阵元,通常高级语言是以二维数组的形式存储矩阵元的。但...

2019-02-25 22:13:52 7251

原创 栈和队列

文章目录栈栈的定义栈的特点栈的实现栈的顺序实现栈的链式实现栈的应用栈的应用之函数调用(递归)共享栈队列队列的定义特点队列的实现队列的拓展双端队列循环队列参考书目栈和队列是操作受限的线性表。为什么会出现栈和队列这种数据结构呢?栈和队列的全部操作都可以用不受限的线性表来实现,为什么会出现,我觉得可能是某些情况下线性表的功能太多了,恰好在没必要提供这么多的接口,于是就出现了栈和队列。栈栈的定义...

2019-02-25 20:55:51 620

原创 线性表

文章目录线性表概述特点线性表的定义两表合并问题线性表的表示与实现线性表的顺序表示与实现线性表的链式表示与实现单链表静态链表循环链表双向链表一元多项式的存储参考资料线性表概述特点在数据元素的非空有限集中存在唯一一个被称为“第一个”的数据元素存在唯一一个被称为“最后一个”的数据元素除了第一个元素之外,每个元素只有唯一一个直接前驱元素除了最后一个元素之外,每个元素只有唯一一个直接后继元素...

2019-02-25 17:51:08 234

原创 数据结构绪论

文章目录几个概念:数据结构:逻辑结构存储结构数据类型数据类型抽象数据类型(ADT)多形数据类型算法参考资料Q:什么是数据结构?A:数据结构是研究非数值计算问题的程序设计问题中计算机操作对象以及操作对象之间的关系和操作的学科。几个概念:数据:泛指一切能输入到计算机中并被计算机识别和处理的符合的集合。数据元素:数据的基本单位。数据项:构成数据元素的不可分割的最小单位。数据对象:具有相同性...

2019-02-25 16:52:13 334

转载 详解如何将中缀表达式转化为后缀表达式

原文地址:详解如何将中缀表达式转化为后缀表达式 本文我将从两种角度来解析如何将中缀表达式转化为后缀表达式一、从应对考试角度来(在最快的时间内得出最准确的答案)首先我们应该知道,要想将中缀转化为后缀,需要借助堆栈实现。(不准备画图了,画图有点浪费时间)我会用最简单明了的语言使读者弄懂。[举个例子吧:比如将:2*(9+6/3-5)+4转化为后缀表达式2 9 6 3 ...

2019-02-20 21:54:34 1062

原创 时间、空间复杂度

文章目录时间和空间复杂度有什么用为什么需要复杂度分析?事后统计法大 O 复杂度表示法时间复杂度分析空间复杂度分析最好、最坏、平均、均摊时间复杂度最好时间复杂度最坏时间复杂度平均情况时间复杂度均摊时间复杂度参考资料时间和空间复杂度有什么用分析用来衡量算法代码的执行效率。为什么需要复杂度分析?事后统计法把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的内存大小。这种方法叫事后统计法...

2019-02-08 20:48:39 184

转载 基于matlab程序对PID控制算法的理解

原文地址:https://blog.csdn.net/sinat_23338865/article/details/53837634%设一被控对象G(s)=50/(0.125s^2+7s),%用增量式PID控制算法编写仿真程序%(输入分别为单位阶跃、正弦信号,采样时间为1ms,控制器输出限幅:[-5,5],% 仿真曲线包括系统输出及误差曲线,并加上注释、图例)。 clear all;c...

2019-01-31 10:33:07 9920

转载 无人机开发资料推荐

转载于:https://blog.csdn.net/qq1518572311/article/details/80262333以下是原文作者:BlueSky链接:https://www.zhihu.com/question/30084079/answer/52762050来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。学习四轴飞行器开发,最快的还是从开源学习平...

2019-01-31 10:19:52 1094

原创 停更通知

暂停更新;以后会继续的。

2019-01-10 16:17:59 468

原创 任务的同步和通信(一)

文章目录前言任务的同步直接制约关系间接制约关系事件发送事件与请求事件信号量消息邮箱消息队列参考资料前言本节简要的介绍什么是任务的同步以及实现任务通信的几种方式:信号量、消息邮箱、消息队列等等。程序中的各个任务通常要相互配合才能完成一个功能。比如任务运行时经常需要无冲突的访问某一种资源,或者某个任务必须在前一个任务完成之后才能开始等等。这些情况就必须要任务间能进行通信。任务的同步为了实现各...

2018-11-28 21:52:40 4441 2

原创 uC/OS-II的时钟

文章目录前言uC/OS-II的时钟常见的函数OSTickISR()时钟中断的中断服务程序OSTimeTick()时钟节拍服务函数OSTimeTickHook()函数任务的延迟OSTimeDly(INT16U ticks)OSTimeDlyHMSM()取消任务延迟OSTimeDlyResume()OSTimeGet()获取系统时间OSTimeSet()设置系统时间参考资料前言任何操作系统都需要一...

2018-11-25 20:16:05 1064

原创 uCO/OS-II的中断

文章目录中断中断中断是指任务在运行过程中应外部或者内部异步事件的请求中止当前任务转而执行异步事件的过程。应中断请求而运行的程序叫做中断服务子程序(ISR)...

2018-11-25 17:41:14 891

原创 浅谈uCOS-II的任务(下)

文章目录任务就绪表及任务调度任务的就绪表结构对任务就绪表的操作登记注销最高优先级就绪任务的查找任务的调度任务的创建OSTaskCreate()OSTaskCreateExt()创建任务的一般方法任务的挂起和恢复任务挂起OSTaskSupend()任务恢复OSTaskResume()其他任务管理函数任务优先级别修改任务的删除查询任务信息uCOS-II的初始化和任务的启动初始化启动参考资料任务就绪表...

2018-11-20 22:13:22 2248

原创 浅谈uCOS-II的任务(上)

文章目录前言什么是任务任务的管理任务的状态系统任务任务的优先权以及优先级别任务堆栈任务堆栈的创建任务堆栈的初始化任务控制块及其链表任务控制块链表任务控制块的初始化参考资料前言大概花了四天时间将将uCOS的任务看了一下,因为之前学过一点操作系统的知识,所以看得不是特别费劲,下面具体来谈谈uCOS-II的任务是什么样的吧什么是任务在实际生活中,处理一个大问题的时候通常会将其分解为若干个小问题,...

2018-11-19 20:41:16 3718

原创 windows下的gcc使用

缘起在windows有很多集成开发环境(vs系列,code::blocks等等)可以用,为什么要使用gcc在dos下面编译一个c程序呢?因为博主最近要看一下uC/OS-II方面的东西,然后教材使用的是:任哲的《嵌入式实时操作系统μCOS-II原理及应用》,在这本书里面介绍将c语言程序一步步编译运行的时候使用的是Borland C++3.1精简版,这个编译器在Turbo C的时代是非常受欢迎的...

2018-11-08 20:10:17 22706 2

转载 uC/OS-ii 学习步骤及书籍推荐

我也不知道原创在哪里第一步.《嵌入式实时操作系统μCOS-II原理及应用》任哲编著&nbsp; &nbsp;&nbsp;&nbsp;首选任哲的这本书。我建议先把这本书看一遍,弄清楚ucos是怎么回事,至于操作系统里面的具体代码实现,大概了解就行,可以暂且不去细究。先会用,然后慢慢才能谈上精通。第二步.《基于嵌入式实时操作系统的程序设计技术》周慈航&nbsp; &nbsp;&nbsp;&nb...

2018-11-07 22:32:38 2161

原创 操作系统(十一) -- 内存的换入与换出及换出的基本算法

文章目录前言换入换入概述一个实际系统的请求调页换出FIFO(先入先出)MIN算法LRU算法LRU算法的准确实现:用时间戳LRU算法的准确时间:用页码栈clock算法二次机会算法给进程分配多少个页框参考资料前言前面说过为了保证内存在用户程序看起来是分段,而实际是分页的效果,引入了虚拟内存。对于用户来说,虚拟内存是一个完整的内存,用户可以随意使用该“内存”,假设为4G,那么对于用户来说就有4G的空...

2018-10-24 09:41:34 5306

原创 操作系统(十) -- 段页结合的实际内存管理模型

文章目录虚拟内存虚拟内存的引入什么是虚拟内存一个实际的段、页式内存管理分配内存、建立段表分配内存、建立页表MMU地址处理参考资料前面说过用户程序喜欢分段来管理内存,但是实际的物理内存更加倾向于分页管理,因为这样可以使内存的利用率最大化。作为操作系统,既要向上负责,又要向下负责。这一篇博客主要谈谈用户程序需要的段和物理内存需要的页是如何结合到一起的。虚拟内存虚拟内存的引入首先两个条件,第一:...

2018-10-23 13:11:42 1635

原创 操作系统(九) -- 多级页表与快表

文章目录单级页表的缺点多级页表的提出第一种尝试:页表里面只存放用到的页第二种尝试:多级页表,页目录表+页表多级页表的缺点相连快速存储TLB(快表)小结参考资料单级页表的缺点前面说了为了提高内存的利用率,内存是分页管理的,并且有一个页表用来存储页号与页框的对应关系。这个思想理论上是没有问题的,但是实际使用的时候就不行了,为什么?为了更好的提高内存的利用率,每一页就应该做得足够小,但是每一页都要...

2018-10-21 12:00:11 14863

原创 操作系统(八) -- 内存的分段与分页

前言cpu的使用基本上告一段落,接下来是内存部分。正文内存如何使用:内存使用就是放在内存中的程序能够按照正确的逻辑顺序执行首先让程序进入内存:问题引入假设一段c代码int main (int argc, char * argv[]){ ………………}编译之后形成的汇编代码如下:_entry: call _main call_exit_main:…………………...

2018-10-20 19:27:51 7651 6

原创 操作系统(七) -- 死锁

文章目录死锁举例死锁的基本概念死锁的定义:死锁会造成什么后果呢?死锁的成因死锁的四个必要条件死锁的处理方法概述死锁的处理方法死锁预防死锁避免死锁检测+恢复死锁忽略参考资料多个进程在交替执行的时候,如果控制不好,就会出现死锁的情况;这个问题需要操作系统去处理。死锁举例如下例子:Producer(item){ P(mutex); P(empty); // 代码 V(mutex...

2018-10-19 21:38:51 774

原创 操作系统(六) -- 多进程合作与信号量

文章目录前言多进程合作实例:多进程共同完成一个任务的实例生产者-消费者实例信号量的提出信号量用信号量解决生产者消费者问题:信号量的临界区保护信号量为什么要进行保护呢?临界区(Critical Section)临界区代码的保护原则:临界区保护的直观想法:两个进程之间的调度进入临界区的第一个尝试 - 轮换法:进入临界区的又一个尝试 - 标记法:Peterson算法:多个进程调度面包店算法:通过开关中断...

2018-10-18 09:49:59 1597

原创 操作系统(五) -- CPU的调度策略

常见的调度策略以及考虑的内容。CPU调度就是当前进程需要进行IO操作或者时间片结束了,如何从就绪队列中选择下一个执行的进程。CPU调度的直观想法:FIFO先入先出,根据队列的前后顺序执行。类似于银行和食堂排队,但是有问题,如果一个人只是简单的询问这样的算法肯定对他不公平。Priority(优先级)给每个进程都设置优先级,根据优先级来选取下一个执行的进程。对于一些时间短的任务可以适当增加...

2018-10-17 11:03:05 6801 2

利用JS进行表单验证

提供一种利用JS进行表单验证的方法。代码中仅仅实现了用户名的验证。用户名如果不合理阻止发送

2018-01-25

随机显示小星星的代码

在网页上随机显示小星星,随机大小,随机位置,可以参考一下

2018-01-22

W3CSchool前端数据参考手册前端必读

W3CSchool的web开发手册,包括html+CSS+JS+PHP。前端必读。绝对真品

2018-01-22

空空如也

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

TA关注的人

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