- 博客(41)
- 收藏
- 关注
原创 三种流行开源框架介绍
保证多环境表结构的一致性文章背景多环境表结构比对功能表结构比对流程表结构比对结果示例表结构比对实现方式表结构比对使用方法插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入文章背景主要解决上线到不同环境(测试环境、线上环境)漏发 Db Checklist 的问题。特别是大版本、多功能上线,C
2022-02-20 20:47:09
880
原创 用马拉车算法寻找字符串的最长回文子串
字符串的最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。例如输入: “cbbd”,输出: “bb”。1.暴力解法预处理字符串分为奇数长度和偶数长度,例如奇数长度字符串“abcba”是以c为对称轴,偶数长度字符串“cbbc”是以bb为对称轴。为了扩充成奇数长度,“abcba”变成“#a#b#c#b#a#”,“cbbc”变成“#c#b#b#c#”。如果不说明原始回文子串,以下回文子串指的都是经过处理后的子串。string process(string s) { string ss = "
2020-07-12 21:18:07
280
原创 简单易懂的Go语言的单元测试教程
引入谷歌一搜Go语言如何写单元测试,千篇一律都是关于整个包只有一个函数怎么实现测试。然而,很多情况下无法对复杂结构的代码进行测试。这篇博文教你在函数依赖于结构体的条件下实现单元测试。最简单的例子hello.go文件package mainimport ( "fmt")func hello() string { return "Hello, Testing!"}func main() { fmt.Println(hello())}hello_test.go文件packag
2020-07-03 21:36:05
627
原创 Linux平台CentOS6.5下源码安装Mysql教程
概述:通过源代码安装高版本的5.6.14。尝试很多下载MySql版本之下,终于摸索到一个成功的版本。踩坑不易,分享给大家,亲测能够成功。一:卸载旧版本使用下面的命令检查是否安装有MySQL Server。rpm -qa | grep mysql目前我查询到的是这样的:mysql-libs-5.1.73-7.el6.x86_64有的话通过下面的命令来卸载掉:rpm -e mysql_libs //普通删除模式rpm -e --nodeps mysql_li
2020-05-22 11:08:55
245
原创 守护进程详解
目录守护进程的特点常见的守护进程守护进程的编程规则编程规则设计原理守护进程的编程代码总结参考资料守护进程的特点守护进程是脱离终端并在后台运行的进程。守护进程不具有控制终端,我们不会再终端上见到守护进程的输出。守护进程也不会被终端发出的信号打断。常见的守护进程init 系统守护进程,启动系统服务inetd 侦听网络接口,以便取得来自网络各种网络服务进程的请求守护进程的编程规则调用umask将文件模式创建屏蔽字设置为0。调用fork,父进程退出。调用setsid创建一个新会话。将当前工作目
2020-05-09 19:33:44
1684
原创 快速排序极其优化方式(cpp代码)
简介1.本篇给出了经典快速排序的原理和代码。2.基于荷兰国旗的快速排序的优化原理和代码。3.随机选取基准的优化方式经典快速排序的原理和代码原理排序算法的思想非常简单,在待排序的数列中,我们首先要找一个数字作为基准数(这只是个专用名词)。我们一般选择第 1 个数字或者最后一个数字作为基准数(其实选择第几个并没有关系)。接下来我们需要把这个待排序的数列中小于基准数的元素移动到待...
2020-05-05 08:35:28
528
原创 手把手教你实现《UNIX网络编程》书上程序( 第五章为例)
目录配置环境执行启动服务器启动客户端终止客户端进程的状态如何改进配置环境《UNIX网络编程:卷一》这本书籍的原始代码在:www.unpbook.com,初始环境配置大家可以参考该网址链接的github仓库。接着我们进入第五章代码,我这里保存的目录是/opt之下,大家需要做相应替换。$ cd /opt/unpv13e/tcpcliserv 用m...
2020-04-11 17:19:29
220
原创 图解剖析C++多态与内存模型
导引看完了Lippman《深度探索C++对象模型》这本书以后,对于多态和虚函数的理解还是比较模糊,直到查阅了不少资料与博文以后,才有恍然大悟的感觉。在对C++多态进行总结之前,推荐几篇优秀的经典博文:陈皓的 C++ 对象的内存布局这篇虽然代码有些小瑕疵,但是瑕不掩瑜C++ 之 多态这篇博文代码对理解虚函数表很有帮助。可以拿来自己测试。C++对象的内存布局以及虚函数表和虚基表这篇总...
2020-03-30 19:11:43
824
原创 动态规划系列总结
动态规划系列总结分析流程三步走简化dp数组问题分类字符串数组/字符串的子序列其他问题参考资料分析流程三步走1. 找到问题当中的变化量,即状态,明确dp数组/函数的定义2. 通过第i步的选择,寻找状态之间的关系,得到转移状态方程3. 找到base case简化dp数组求解动态规划的核⼼问题是穷举,最开始往是通过分析通过暴力解法得到初步思路。由于暴力解法当中有许多重复部分,故增加memo...
2020-03-14 11:05:42
168
原创 C++ KMP代码
思路以下两篇讲的非常详细http://www.cnblogs.com/c-cloud/p/3224788.html(这篇参考了阮一峰的)http://www.cnblogs.com/c-cloud/p/3224788.html(这篇对理解next数组很有帮助)程序public: void build_next(string needle, vector<int&...
2020-03-12 16:02:07
188
原创 C++多线程教程(三)利用多线程实现加速
简介在前期基础知识储备以后,让我们正式进入利用多线程实现程序加速的环节基本思想将原始计算过程拆分为多个过程。例如计算五亿次加法过程。我们可以将其分为两个过程,从零加到两万五,再从两万五加到五万。程序实现下面的程序分别展示用两个线程和单个线程实现五亿次加法过程。measure测量时间函数已经在上一章节中详述,不再重复。int main() { long times = 50000000...
2020-03-06 22:26:23
4888
4
原创 C++多线程教程(二)衡量线程执行时间
简介在利用多线程实现加速之前,我先来讲一下衡量线程执行时间的常用方法。实现的基本思路就是用衡量函数对执行代表包括起来。基本语法#include<iostream>#include<thread>using namespace std;using namespace std::chrono; //增加引用空间template<...
2020-03-06 21:56:39
3464
原创 C++多线程教程(一)基本语法
简介C++ 11 之后有了标准的线程库:std::thread。本文针对thread介绍多线程的基本语法,并做案例展示。基本语法头文件: #include <thread>thread 参数: thread(Fn&& fn, Args&&… args);说白了fn就是需要执行的函数指针(函数名),args是需要传入fn的参数threa...
2020-03-05 22:54:41
572
原创 二叉树的迭代法
简介本篇文章介绍二叉树的前序,中序和后序遍历方法,并总结其框架。前序遍历前序遍历的顺序是:根节点->左子树->右子树。迭代代码的思路为:1.访问跟节点的同时,将右子树压入栈S。令下一个节点为左子树,直到遍历完所有的左子树。将S栈顶弹出,弹出的即为最近访问的右子树。2.不断循环过程1,直到栈为空。代码框架栈S;p= root;while(p || S...
2020-03-05 09:46:44
663
原创 回溯问题方法论
框架伪代码result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: # 做选择 将该选择从选择列表移除 路径.add(选择) backtrack(路径, 选择列表) # 撤销选择 ...
2020-02-19 11:16:35
228
原创 手把手教你从.pb转换为.tflite文件 附加不同版本tensorflow对应的TFLite Python API语句
引言很多博客教程都需要安装bazel编译工具,并且编译tensorflow的源码,过程繁琐。本篇博文教你如何用几行代码就实现.pb到.tflite文件转换。代码代码先贴上来,随后做详细讲解。import tensorflow as tfin_path = r'.\yolov3_coco.pb'out_path = r'.\yolov3_coco.tflite'input...
2020-02-18 19:24:13
5627
6
原创 C++实现从数组到链表,从前序遍历到中序遍历
从数组构造链表的资料比较少,大多数都是直接从控制台输入,故写下此文。重点在preOrder函数。插入一个preOrder函数里面的一个疑问:直接用结构体的构造函数写的root往往只剩下头节点,而用New的方式却能够构造完整的链表,这是为什么呢?如果你知道的话,欢迎你在评论区留言 :)int main(void) { vector<int> nums1 = { 1,NUL...
2020-02-01 20:46:28
365
原创 C++链表实现两数相加
这是LeedCode上面第2题:链表实现两数相加。复习了多文件编译,链表的相关知识。给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) +...
2020-01-16 22:14:14
1384
原创 讨论|数字翻转到底要不要考虑溢出的问题
刷到两道Leedcode数值翻转的问题,虽然官方给的答案都要考虑数值翻转,但是经过实验测试,是不需要考虑的。原因:int类型数据占4个字节,即32位,从-2^31分布到2^31-1,在十进制数字上是 -2,147,483,648到2,147,483,647。我们观察这个数字,只有输入值的个位不超过2的时候才能被翻转为int类型数据,超过2的时候根本就不是int类型数据了。cla...
2020-01-15 22:04:22
260
原创 基于vs2017的armadillo配置教程(超详细!)
配置环境:Windows10 系统Visio studio 201764位程序代码配置步骤:1.下载armadillo地址是:http://arma.sourceforge.net/download.html我下载的是当时的最新版本armadillo-9.800.2.tar.xz2.新版本不需要修改config.hpp项目与其他教程不一样的地方。...
2019-11-21 17:40:22
4444
8
原创 文献插入工具Mendeley特点及在Word中的使用方法
Mendeley使用特点总的来说,该工具适合英文文献的插入。因为它具有强大的英文搜索库,并且能很好的和谷歌浏览器相结合。而对于中文文献则非常的鸡肋,即使导入了PDF文档,大概率识别不了,需要在文末手动修改文献内容。使用Mendely在Word文档中的插入步骤使用的前提是已经安装好Mendely扩展且登陆,并在Word中接上Mendely软件。一般下载Mendely软件就会做出提示,本文...
2019-10-24 19:45:07
6970
原创 【C++编程问题】debug assertion failed expression:filename != nullptr
提示的错误信息Debug Assertion Failed!Program: ...ments\Visual Studio 2015\Projects\Project9\Debug\Project9.exe File: minkernel\crts\ucrt\src\appcrt\stdio\fopen.cpp Line: 30Expression: file_name != nul...
2019-09-12 10:51:59
4747
2
原创 C语言程序实现道格拉斯—普克算法(Douglas--Peucker)
算法简介道格拉斯—普克算法(Douglas—Peucker)也称,线简化算法。作用在于,删除冗余数据,减少数据的存贮量,节省存贮空间,加快后继处理的速度。格拉斯—普克算法(Douglas—Peucker)的核心思想:对每一条曲线的首末端点连一条线,求所有点到该直线的距离,并找出最大距离值Dmax,用与阈值限差D相比: 若Dmax<D,这条曲线上的中间点全部舍去; 若Dmax ≥ D...
2019-08-13 18:21:52
3684
1
原创 scanf_s() 输入单个字符屏蔽回车符
平台Visual stdio 2019方法在scanf_s调用后一句加上getchar();printf("Play again?"); scanf_s("%c", &answer,1); getchar();尝试过清空缓冲内存的fflush(stdin)函数,但是无效。而getchar()函数能够获取单个换行符,更为有效。...
2019-07-31 12:02:06
1169
2
原创 利用C语言的递归算法对数组排序
整体算法描述:录入一串整数,通过调用selection_sort函数和sort函数来排序这些整数。selection_sort函数描述:1.确定第n个数组元素;2.递归调用本身sort函数描述:搜索数组找出最大的元素,并返回到数组最后#include <stdio.h>#define N 3void selection_sort(int n, int...
2019-07-30 17:41:17
3876
原创 把英文句子颠倒过来的C语言代码
例如输入: Graceloves China!输出为 China loves Grace!#include<stdio.h>int main(){ char sentence[100]; int end, flag=0; printf("Enter a sentence(please end with ? or . or ! ):"); gets_s(se...
2019-07-29 19:25:54
3981
原创 下载在Anaconda搜索不到的模块(以stl模块为例)
Introduction用Python跑代码需要用到模块(比如stl),在Anaconda搜索不到,试了google没有发现有解决办法。当你也遇到我这样的情况,可以参考如下。Steps在一篇博客看到博主下载skimage模块结果全名是accelerate-skimage。于是在Anaconda cloud 搜到了名字numpy-stl模块,推测是stl的全名,最后果然解决。因此第一...
2019-05-03 00:48:55
2372
原创 利用Anaconda配置Python 2 环境与Python 3 共存,并在PyCharm添加Python 2解释器
本篇利用Anaconda安装Python2,使得与python3共存。并且利用Pycharm配置Python2编译器。本篇亮点在于比较详细的列出如何找到Python2的python.exe文件,并且配置Python2编译器。
2019-05-01 06:30:55
1218
原创 Tensorflow中tf.nn.relu()函数的理解
线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元。其定义如下图,在横坐标的右侧,ReLU函数为线性函数。在横坐标的右侧,ReLU函数为值为0。因此,tf.nn.relu()函数的目的是,将输入小于0的值幅值为0,输入大于0的值不变。代码测试结果如下:import tensorflow as tfa = tf.constant([-1.0...
2018-08-05 17:17:56
29753
原创 torch平台--编码-解码网络结构LSTM seq2seq代码超级详细解析
原理部分网上很多,参考一篇总结博客:seq2seq学习笔记可惜代码很少。因此我分享一篇我看了6个小时之后写的详细代码解析。大约60行左右,希望大家耐心看下去。 子函数引入状态初始化子函数layer:_createInitStatefunction layer:_createInitState(batch_size) if not self.init_state t...
2018-07-28 19:39:33
2479
转载 好文!使用Torch nngraph实现LSTM
本文转载于使用Torch nngraph实现LSTM,原作者将代码和理论紧密结合,非常易于理解,故分享给大家。LSTM介绍定义:LSTM(Long-Short Term Memory,LSTM) 是一种时间递归神经网络,论文首次发表于1997年。由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。——百度百科下面是关于LSTM的公式: Tor...
2018-07-25 18:09:13
994
原创 torch7 CmdLine语法介绍
CmdLine此类提供了一个参数解析框架,当需要运行依赖于命令行中传递的不同参数设置时,该框架非常有用。 此类还将覆盖默认打印功能,以将所有输出同时指向日志文件和屏幕。 cmd.option(name, default, help)将default参数存储在name中cmd.text(string)记录自定义文本信息 例子cmd = torch.CmdLine()...
2018-07-23 17:09:14
727
原创 lua学习第一课:下载安装(适合windows)、简单程序编译和学习网站推荐
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,优点很多。网上看到了一些良莠不齐的教程,现在自己来总结一番。这篇博客适合入门小白学习,关于下载安装,helloworld程序编译和学习网站推荐。
2018-07-15 11:41:30
2850
1
原创 GAN(Generative Adversary Network)网络导论介绍,小白绝对也能看懂的博文
GAN全称为Generative Adversary Network,被誉为如今最酷炫的网络之一。那么它的神奇之处在哪里呢?GAN网络使得计算机有一种创造性,能根据现有的条件,比如一些二维图片、一个语句库“创造出”从来没有的图片和句子。如下图所示,通过调整网络的一些参数,我们改变图像人物中头发的长度和颜色,甚至创造出完全不一样的图像。灵魂画手,你也可以拥有。网络结构介绍 ...
2018-07-14 16:43:44
1201
原创 论文摘要——总结 Multiple granularity descriptors for fine-grained categorization.
学习预习笔记交互式图像分割:首先由用户以某种交互手段指定图像的部分前景与部分背景,然后算法以用户的输入作为分割的约束条件自动地计算出满足约束条件下的最佳分割。例如,典型的交互手段包括用一把画刷在前景和背景处各画几笔以及在前景的周围画一个方框等。全局前景估计:对前景进行运动估计 简述人类大脑是根据界门纲目科属种识别动物,本篇文章与人脑识别动物原理相似,从大到小将动物归类。举一个例子,啄木鸟的“科”上...
2018-07-13 15:42:28
2380
原创 斯坦福机器学习第三课——牛顿迭代法与广义线性模型(Generalized Linear Models)
本文章简要讲述了牛顿迭代法的实现方法以及广义线性模型的定义、条件与举例
2018-07-13 15:33:22
1535
原创 斯坦福机器学习第二课——局部加权线性回归(Locally weighted linear regression)
上一节内容总结了线性回归方法,并在求θ用到了梯度下降方法。这一节将利用梯度下降方法,讨论局部加权线性回归(Locally weighted linear regression)前提知识补充:非参数算法:虽然样本容量不断扩充,拟合曲线也会改变。参数算法:由常数θ决定,不随样本容量不断扩充而改变。例如线性回归过程。似然函数定义:总的来说步骤就是令误差服从高斯分布后,取对数的结果。具体步骤如下1.假设输...
2018-07-10 21:52:16
1074
原创 斯坦福机器学习第一课——线性回归(Linear Regression)
本节总结斯坦福的监督学习第一课——线性回归,本文图和数据均来自Andrew Ng的课程讲义。例子引入让我们以房价的例子开始。下图给出两个输入:房子面积(x1)和卧室数量(x2)的数据,要求拟合关于输出:房价(hθ(x))的线性方程。因为前提就是线性方程,因此等式可以表示成如下:hθ(x) = θ0+θ1x1+θ2x2 式(1)建模以上的过程可以用一个模型...
2018-07-08 23:03:16
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人