
教程
文章平均质量分 61
bbings
https://bbing.com.cn/
展开
-
字符串匹配算法
先约定两个概念, 主串和模式串.比如在S字符串中查找s字符串, 则S是主串, s是模式串.如下, 在主串中搜索"cdf"模式串:主串和模式串BF暴力匹配是很朴素的字符串匹配算法, 将主串中的字符与模式串的字符一个一个匹配, 如果遇到不匹配的字符对则主串向后滑动一个字符, 从头开始匹配:暴力匹配代码实现如下, strStr的作用是从haystack字符串中找到needle字符串首次出现的位置, 如果没有找到则返回-1. (LC.28) 1 2 3 4 5 6 7 8 910111213原创 2021-08-26 13:18:53 · 302 阅读 · 0 评论 -
数据结构与算法之图
什么是图在前面的文章中, 我们了解了树的概念, 重点是二叉树, 图在拓扑结构上和树有点类似, 但是图不是树.直观地, 先来看一个图的拓扑结构:无向图上述展示的是无向图, 无向图就是没有方向的图, 只要两个结点之间是联通的, 就可以从一个结点到另外一个结点.我们可以将其理解为简化后的地图, A-G代表的是地点.一般地, 对图我们有以下的一般性概念:图的结点叫做顶点;顶点(结点)之间的连接叫做边;一个顶点(结点)有多少条边叫做这个顶点(结点)的度;对应的, 还有有向图, 有向图就是有方向的图, 链接的两个顶点的原创 2021-08-26 13:18:02 · 486 阅读 · 0 评论 -
数据结构与算法之跳表
一维链表一维链表链表不需要一块很大的连续的存储空间是其优点, 但是对一串有序序列, 使用一维链表查询的时间复杂度是O(n), 能否如查找二叉树之类, 将其查找时间复杂度降为O(logn)呢?一种常用的方法是升维. 升维也是一种空间换时间的思考方式, 会提高数据结构的空间复杂度, 但是可以降低一些操作的时间复杂度.跳表跳表的一般结构, 将一维链表升维成二维:跳表跳表类似于图书馆的图书管理结构. 一般地, 图书馆存放图书有以下约定:每本图书有其对应的唯一ID(key);每本图书的ID可以比较大小关系;图书是按照原创 2021-08-26 13:14:25 · 228 阅读 · 0 评论 -
数据结构与算法之2-3-4树
数据结构与算法之2-3-4树原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载平衡树[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3SPrlM2-1615947159678)(https://s3.ax1x.com/2021/01/29/yi2tDs.png “不太平衡的二叉树”)]对于一个普通的二叉查找树, 我们可以发现一个问题, 存在一定的可能性, 一般的二叉查找树会退化成一般的链表.上图还没原创 2021-03-17 10:14:01 · 318 阅读 · 0 评论 -
数据结构与算法之二叉树
数据结构与算法之二叉树原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载什么是二叉树二叉树的知识点, 需要有链表的基础知识, 一般二叉树的结构如图示:二叉树是一种树状结构.所谓二叉, 就是一个节点最多可以延伸出两个子节点. 对于二叉树的节点一般会有一些固有称呼.如上图,一般会把N1节点叫做"根结点"或者"root节点";会把N2叫做N1的"左子节点", N3叫做N1的"右子节点";N1则是N2或者N3的"父节点"或者"原创 2021-02-22 09:34:47 · 228 阅读 · 0 评论 -
C++模板问题之多出的static
C++模板问题之多出的static原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载问题先看以下代码#include <iostream>using namespace std;using uint32 = unsigned int;template<bool ISIN>static void updateVal(uint32 &val){ static uint32 sval;原创 2021-01-25 19:46:01 · 220 阅读 · 0 评论 -
C里面的变长参数
C里面的变长参数原文来自个人博客(求访问/关注/收藏): https://bbing.com.cn/ 优快云个人博客不定期转载stdarg.h这里用到的是stdarg.h这个库, 可以在C语言里面实现可变长参数.当然C++会简单得多, C++11之后的模板原生支持可变长参数.几个函数va_list、va_start、va_arg、va_end,定义在stdarg.h内存结构先需要理解C/C++函数入参的顺序.按照以下的demo, 将其翻译成汇编代码.#include <i原创 2021-01-28 09:34:44 · 269 阅读 · 0 评论 -
高精度减法--C++
高精度减法–C++仿照竖式减法,先对其,再对应位相减。算法处理时,先比较大小,用大的减小的,对应位再比较大小,用于作为借位符。#include <iostream>#include <cstring>#define MAXSIZE 20#define MAXOUTSIZE MAXSIZE + 2using namespace std;int main(...原创 2018-09-17 20:50:00 · 1470 阅读 · 1 评论 -
高精度加法--C++
高精度加法–C++仿照竖式加法,在第一步计算的时候将进位保留,第一步计算完再处理进位。(见代码注释)和乘法是类似的。#include <iostream>#include <cstring>#define MAXSIZE 20#define MAXOUTSIZE MAXSIZE + 2using namespace std;int main(){ ...原创 2018-09-17 20:13:38 · 375 阅读 · 0 评论 -
高精度乘法--C++
高精度乘法–C++模仿竖式乘法,在第一步计算的时候将进位保留,第一步计算完再处理进位。(见代码注释)若要处理正负情况,可在数据输入后加以判断,处理比较简单。小数计算也可参照该方法,不过对齐方式需要改变,或者改成二段计算。#include <iostream>#include <cstring>#define MAXSIZE 20#define MAXOUTS...原创 2018-09-17 20:00:06 · 906 阅读 · 0 评论 -
C++教程之初识编程
突然想写一份C++教程,并且此教程会尽量使用通俗语言来描述,进入正题!如果你从来没有接触过编程语言,希望我的教程能够帮助你!一、代码示例 当然我希望你暂时不要纠结我在写什么,把代码贴在前面是想给你看看,它会是什么样子的;如果一定要取个名字的话,你可以称这份代码为–“著名的helloworld代码”。#include <iostream>原创 2018-03-21 18:55:59 · 233 阅读 · 0 评论 -
Eigen实现坐标转换
(《视觉SLAM十四讲》第三讲习题7)设有小萝卜一号和二号在世界坐标系中。一号位姿q1 = [0.35, 0.2, 0.3, 0.1],t1=[0.3, 0.1, 0.1]。二号位姿q2=[-0.5, 0.4, -0.1, 0.2], t2=[-0.1, 0.5, 0.3].某点在一号坐标系下坐标为p=[0.5, 0, 0.2].求p在二号坐标系下的坐标假设在世界坐标系中p点的坐标为P...原创 2018-05-27 20:31:50 · 5081 阅读 · 2 评论 -
VSCode中C/C++库文件的配置(自动提示、补全)
VSCode中C/C++库文件的配置之前一直在是用sublime做主要编辑器,现在主要使用VSCode,毕竟大厂制作,从目前的使用情况来看,我更喜欢使用VSCode编辑器。有时候会用VScode来组件C/C++工程,并且用到了一些外部依赖的库文件,比如OpenCV。此时希望VSCode的代码提示功能能够提示OpenCV中的函数,这时候就需要配置工作空间中的C/C++编译环境。如...原创 2018-06-12 20:04:56 · 103906 阅读 · 6 评论 -
对含小目标的灰度图二值化方法
对含小目标的灰度图二值化方法在实际经历中,对原始图像经过一定操作之后得到了包含目标的灰度图像,其中,目标在图像中属于比较亮的区域,背景则是相对较暗的区域,现在需要将目标提取出来。最先想到的方法是将灰度图像二值化,并且希望目标区域二值图中为1(255)的集合,背景则是0的集合。一般想法可能直接是阈值分割,对于单帧或者图像序列亮度及目标亮度变化不大的情况一般适用,但是对于复杂情况可能不...原创 2018-07-04 09:04:37 · 861 阅读 · 0 评论 -
基本矩阵与本质矩阵
基本矩阵与本质矩阵基本矩阵与本质矩阵的数学推导:假设空间中一点P=[X,Y,Z]TP=[X,Y,Z]TP = [X, Y, Z]^T。P在相机A相平面坐标为PA=[xA,yA,1]TPA=[xA,yA,1]TP_A = [x_A, y_A, 1]^T;P在相机B相平面坐标为PB=[xB,yB,1]TPB=[xB,yB,1]TP_B = [x_B, y_B, 1]^T;相机A...原创 2018-08-06 11:52:33 · 1899 阅读 · 0 评论 -
tensorflow 曲线拟合
tensorflow 曲线拟合Python代码:import numpy as npimport tensorflow as tfimport matplotlib.pyplot as plt# from tensorflow.examples.tutorials.mnist import input_data# creating datamu,sigma=0, 0.1...原创 2018-08-06 16:41:57 · 697 阅读 · 0 评论 -
cbuild-一个创建和管理C++项目的工具
cbuild-一个创建和管理C++项目的工具介绍:这是个人开发的一个管理C++项目的工具,用shell脚本编写。可能会不定期更新,也欢迎大家一起完善。当前开发版本0.1。个版本功能如下:0.0 – 初始版本,具备创建、删除、编译、运行项目基本功能0.1 – 在0.0版本基础上使用模板文件,方便用户定制自我需求使用方法:github地址:https://g...原创 2018-08-07 09:47:16 · 755 阅读 · 0 评论 -
学习SVM
我们先来看看线性SVM。 SVM的全程是Support Vector Machine,即支撑向量机;顾名思义,SVM核心在于支撑向量,因为SVM认为其最优分类面是由支撑向量决定的。 什么是支撑向量呢?如果你曾经接触过感知器算法就会知道,对于线性感知器,找出来的分类面似乎没有一种判定方法证明其分类面是优的,暂且也只能说这个分类面可以用于分类。但是SVM就不同了,它找出来的分类面尽可能...原创 2018-02-06 11:35:15 · 299 阅读 · 0 评论