自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 C++多线程

在任何一个时间点上,线程是可结合的(joinable),或者是可分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时右系统自动释放。总而言之:线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是可结合的(joinable...

2019-07-07 20:35:11 232

转载 隐马尔可夫模型HMM

目录1. 隐马尔可夫模型1.1 什么样的问题需要HMM模型1.2 HMM模型的数学定义1.31. 隐马尔可夫模型隐马尔可夫模型(Hidden Markov Model)是比较经典的机器学习模型,它在语言识别、自然语言处理、模式识别等领域得到广泛的应用。1.1 什么样的问题需要HMM模型使用HMM模型时我们的问题一般有这两个特征:1)我们的问题是基于序列的,比如时间序列,或者状态序列。2...

2019-07-04 17:01:49 262

转载 在使用BERT中的一些参数记录

batch_size:每批数据量的大小。DL通常用SGD的优化算法进行训练,也就是一次(1 个iteration)一起训练batchsize个样本,计算它们的平均损失函数值,来更新参数。iteration:1个iteration即迭代一次,也就是用batchsize个样本训练一次。epoch:1个epoch指用训练集中的全部样本训练一次,此时相当于batchsize 等于训练集的样本数。...

2019-06-27 17:02:37 32028 2

转载 BERT学习过程记录1:Word2vec

目录1. 什么是Word2vec2. Skip-gram 和 CBOW 模型2.1. Skip-gram 和 CBOW 的简单情形2.2. Skip-gram 更一般的情形2.3. CBOW 更一般的情形资料来源自知乎,仅作摘录之用1. 什么是Word2vec在聊 Word2vec 之前,先聊聊 NLP (自然语言处理)。NLP 里面,最细粒度的是 词语,词语组成句子,句子再组成段落、篇章、...

2019-06-27 15:56:50 1419

原创 大数据去重:Bitmap和布隆过滤器

目录1. 用户关注链问题2. Bitmap3. Bloom filter(布隆过滤器)4. 海量数据中位数问题5. Top-K问题1. 用户关注链问题场景描述:在某场景下有一个用户关系链,比如A关注了B,然后B关注了C,然后用户B知道自己被谁关注,也知道他关注了谁。假如说将这个信息放在统一的数据库中,然后用户查询的时候每次去遍历,那么就会对数据库造成非常大的负担,而且在一个亿级用户系统中这样的...

2019-06-20 15:21:39 780

转载 中文纠错之N-gram

中文纠错之N-gram1. N-gram介绍2. 公式3. Bi-gram例子4. 评估模型优劣1. N-gram介绍N-gram是基于一个假设:第n个词出现与前n-1个词相关,而与其他任何词不相关。整个句子出现的概率就等于各个词出现的概率乘积(各个词是相互独立的),各个词的概率可以通过语料中统计计算得到。N=1时称为unigram,N=2称为bigram,N=3称为trigram,假设下一...

2019-06-19 15:12:01 3022

原创 gRPC安装以及使用

安装过程sudo apt-get install build-essential autoconf libtool libgflags-dev libgtest-dev clang libc+±dev pkg-config unzipgit clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpccd...

2019-05-09 23:56:48 1435

原创 ProtoBuf c++ 常用API

标准方法bool IsInitialized() const: 确认required字段是否被设置string DebugString() const: 返回消息的可读表示,用于调试void CopyFrom(const Person& from): 使用给定消息值copyvoid Clear()...

2019-05-08 19:10:00 864

原创 运行第一个Protobuf实例

安装过程在我的另一篇博客里面有所记录,不妨看一看。如果出现编译错误多半是安装出问题或者环境没配置好ProtoBuf 2.6.1安装、配置、卸载在源代码的解压包里面,有一个文件夹examples/,里面有一些基本示例,包括C++、Java、Python的,这里以C++为例addressbook.proto文件// See README.txt for information and bu...

2019-05-08 18:12:50 231

原创 ProtoBuf 2.6.1安装、配置、卸载

由于公司现在用的是2.6.1,所以现在我安装的版本是2.6.1,据说protoc2和protoc3的数据格式不通用顺便说一下不要在github上面直接下源码,因为源码中没有configure文件,需要先在源码文件夹内运行./autogen.sh命令下载configure文件,但是下载网址被墙了,所以有可能下载失败https://github.com/google/protobuf/relea...

2019-05-08 14:07:44 10650

原创 g++编译命令杂记

最近在学习protobuf的使用,发现在编译目标代码的时候用到了一些之前没有用过的参数,一开始也不知道参数是干嘛的。这种知其然不知其所以然的感觉太不爽了,就赶紧查了一波,发现之前自己有些知识确实理解的不够透彻,广度不够。...

2019-05-08 12:48:58 181

转载 RPC是怎样的

先mark一下,迟点统一看知乎:谁能用通俗的语言解释一下什么是 RPC 框架?

2019-05-05 19:21:34 114

原创 搜索结果优化方案

同音字纠错:(权利的游戏->权力的游戏)1.1. 对《权利的游戏》做分词,变成“权利/的/游戏”,使用分词搜索,并对搜索结果进行评分排序1.2. 将分词“权力/的/游戏”进行同音词查找“quanli->{权力、权利、全力、圈里}”,再对同音词做搜索1.3. 对上面的结果做综合评分排序,给出恰当的结果列表包含搜索:(平凡世界->平凡的世界)2.1 将《平凡世界》做分词“...

2019-04-29 19:28:22 747

原创 Blade知识记录

可构建目标1. cc_library2. cc_binary3. cc_test4. proto_library5. lex_yacc_library6. gen_rule7. swig_library8. cc_plugin9. resource_library10. java_jar11. py_binary...

2019-04-26 19:46:47 750

原创 SVN常用命令

拉取代码到本地svn co svn://svnbucket.com/xxx/xxx更新代码svn up添加新文件到版本库svn add filename(跟git有点像)提交代码svn commit -m “描述”查看SVN信息svn info查看制定命令的帮助信息svn help commit未完待续...

2019-04-26 16:33:59 98

原创 C++成员函数调用以及多态实现

C++支持三种类型的成员函数,分别为nostatic、static、virtual,每一种调用方式都不相同。非静态成员函数(Nonstatic Menber Function)改写成员成员函数签名,使其可以接收一个额外参数,这个参数是this指针int Point::func();//被改写为int Point::func(Point* this);//如果成员函数是const的,插...

2019-04-18 15:50:22 1324

原创 C++中引用和指针的区别

这是自己的理解,在本身a和b只是两个不同的符号,但是它们所对应的内存块是同一块,所以它们就互为别名,本质上还是内存地址。而且这个也能够解释为什么引用不占用内存空间。...

2019-04-15 16:36:47 876

原创 将二维数组作为参数传递

func(int arr[10][10])固定两个维度,比较死板#include<iostream>using namespace std;void func(int arr[10][10]){ for(int i=0;i<10;++i){ for(int j=0;j<10;++j) cout<<arr...

2019-04-14 22:53:42 17865 3

原创 数组指针、指针数组和指针的指针区别

先说明第一个问题:[]的优先级比*要高int *p1[n];是一个指针数组,是一个存储指针的数组,含有多个指针。int (*p)[n];是一个数组指针,是一个指向一维数组的指针,只有一根指针。示意图如下:二维数组可以看成是一维数组,此一维数组里面的每个元素都是一个数组,而数组名是一个地址,所以我们传递参数时接收的形参就要求为指针。指针里面存储了地址以及类型,并不是我以前以为的只有地址...

2019-04-14 21:26:33 323

原创 HTTP协议以及Restful Api的理解

什么是Restful Api就是用url定位资源,用HTTP描述操作。这句话越想越有道理,越想越觉得精辟,确实厉害。描述来源url构成url=协议+主机域名+资源路径(请求页面路径)+请求参数HTTP的请求报文格式请求报文=请求行+请求头+请求体使用GET方法时请求体为空,而使用POST方法时才使用该请求体请求行GET /somedir/page.html HTTP/1....

2019-03-31 10:51:12 8893

原创 同步、异步、阻塞、非阻塞

同步与阻塞关系同步和异步是关于指令执行顺序的阻塞非阻塞是关于进程与线程的两者之间没有必然的联系同步与异步同步是指代码调用IO操作时,必须等待IO操作完成后才返回的调用方式异步是指代码调用IO操作时,不必等待IO操作完成就返回的调用方式同步异步分IO与代码两种,比如说异步IO,异步函数调用...

2019-03-25 10:28:23 74

原创 反转链表

输入一个链表,反转链表后,输出新链表的表头。用的循环,但是我估计栈和数组也是可以的/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution {publi...

2019-03-22 11:02:11 83

原创 计算机网络小知识

子网内的地址计算:有五位可以安排,那么这个子网最多可以安排:252^525- 2 = 30台158.160.1.224/24 那么158.160.1.224要留出来作为子网的网络通信地址,158.160.1.255作为广播地址...

2019-03-14 14:07:44 140

转载 HTTPS与中间人攻击

针对SSL的中间人攻击方式主要有两类,分别是SSL劫持攻击和SSL剥离攻击1. SSL劫持攻击SSL劫持攻击即SSL证书欺骗攻击,攻击者为了获得HTTPS传输的明文数据,需要先将自己接入到客户端和目标网站之间;在传输过程中伪造服务器的证书,将服务器的公钥替换成自己的公钥,这样,中间人就可以得到明文传输带Key1、Key2和Pre-Master-Key,从而窃取客户端和服务端的通信数据;但是对...

2019-03-13 19:57:55 1321

转载 HTTP/HTTPS区别以及SSL的基本原理

1. http和https的区别从大致原理上说,https=ssl+http端口不同:http使用80端口,https使用443端口资源消耗不同:https信息需要加密解密消耗更多CPU和内存开销:https需要CA证书,这个需要付费向认证机构购买2. SSL的基本运行过程SSL/TSL协议的基本思路是采用公钥加密法,也就是说,服务端先向服务器端索要公钥,然后用公钥加密信息,服务器...

2019-03-13 17:17:15 1542 2

原创 从上往下打印二叉树

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。import java.util.*;public class Solution { public ArrayList&lt;Integer&gt; PrintFromTopToBottom(TreeNode root) { ArrayList&lt;Integer&gt; resultList=new A...

2019-03-11 21:01:30 81

原创 树的子结构

题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路如下:每次找到一个节点就判断一次是不是子结构,如果不是那么再依次判断这个节点的左子树和右子树public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boo...

2019-03-11 20:00:56 72

原创 二叉搜索树的后序遍历

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。二叉搜索树定义:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的...

2019-03-11 18:22:01 96

原创 重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。用的是递归,每次递归构建左右子树,然后返回根节点,用哈希表先把里面的节点存起来方便后面查找,由于Java传对象都是传的地址,所以不会耗费很多空间和时间,...

2019-03-11 16:45:21 115

原创 问题记录二

自限定型、枚举Enum&lt;E extends Enum&lt; E &gt;&gt;反射、Class接口中的所有方法自动地属于public,因此在接口中声明方法时,不必提供关键字public。但是在类中实现接口的时候一定要显式地将实现的方法声明为public接口中不能包含有实例域,但是可以包含常量,并且接口中的域将被自动设为public static final接口不是类,所以我们不...

2019-03-10 17:11:02 120

原创 Java中的域,静态域,实例域

域所谓的域,是field的翻译,也就是我们常说的字段,或者属性。比如类的字段(属性),局部的,全局的。静态域也就是静态属性,我们可以单独为它设一个域,这个域又叫做类域。它是属于类的,不需要类的实例化就能够使用static{ int field1=1; int field2=2;}实例域我们创建实例之后这个域才被激活能够被使用,这个域是属于实例化对象的priva...

2019-03-09 16:28:44 1360

原创 什么情况下需要重写equals和hashcode方法

1. 为什么在写自定义的类的时候要重写equals?从Object里面继承的equal方法是这样的:public boolean equals(Object obj) { return (this == obj); }它只是简单比较了一下两个对象的地址是不是同一个,这很明显不符合我们的需求,所以要我们自己重写。2. 为什么要同时重写重写hashcode方法?未重...

2019-03-08 20:47:48 6693

原创 Java内联方法

inline Method(内联函数)就是指函数在被调用地地方直接展开,把这个内联函数当成主函数地一段代码直接执行,编译器在调用的时候不会像调用一般函数那样,函数句柄压栈,参数压栈,返回时参数出栈以及释放资源等,这样提高了程序的执行效率就是指函数在被调用地地方直接展开,把这个内联函数当成主函数地一段代码直接执行,编译器在调用的时候不会像调用一般函数那样,函数句柄压栈,参数压栈,返回时参数出栈以...

2019-03-08 18:09:46 2469

原创 Java传参到底传的什么?(剖析)

1. 到底传值还是传引用?定个基调:传值,只有传值!八个基本类型传值是没有什么疑问的,那么类的实例化对象呢?当然也是传值,传的地址值。举个例子Person person=new Person();里面person是一个引用变量,它保存了我们刚刚实例化的一个对象的地址,在JVM的堆里面的地址(注意不是计算机内存的真实地址)。那么在我们将person当参数传递出去的时候传的就是这个地址值,收到参...

2019-03-07 23:56:43 696

原创 Java编程技巧

每一个类可以有一个main方法。这是一个常用于对类进行单元测试的技巧。例如,可在Employee类中添加一个main方法。如果想要独立的测试Employee类,只需要执行java Employee。如果Employee类是一个更大型应用程序的一部分,就可以使用java Application,Employee类的main方法永远不会执行。ij中也可以的,右键run就可以选择运行哪个main函数...

2019-03-07 21:13:01 89

原创 问题整理一

自动生成文档,以/*开始,以/结束8种基本类型=4种整型+两种浮点类型+1种用于表示Unicode编码的字符单元的字符类型char+booleanPerson person; 只是声明了一个变量,这个变量将指向一个Person的对象Person person=new Person();才是实例化了一个类,并且将这个引用指向这个实例化的对象为A对象创建了一个实例。但在内存中开辟了两块空间。...

2019-03-07 20:45:15 193

原创 JRE和JDK区别(jvm.dll和jar包的作用)

1. 定义JRE(Java Runtime Enviroment)是Java运行时环境。面向Java程序的使用者,而不是开发者。JRE是运行Java程序所必须环境集合,包含JVM标准实现及Java核心库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。JDK(Java Development Kit)是Java开发工具包,它提供了Java的开发环境(编...

2019-03-07 13:46:21 1481

原创 Java中continue、break、return跳出多重循环

1. continue:跳过一次循环,进入下一次循环2. break:结束整个循环,只会结束一层循环,比如说有两层for,那么break内层循环只会结束内层循环,继续执行外层循环3. break结束多层循环:设置标志位置结束整个代码块public class Main { public static void main(String[] args) { testbre...

2019-03-03 11:11:38 4477

原创 Java Z 字形变换

- 题目:Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S II GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,...

2019-03-01 10:21:45 1078 1

原创 动态规划算法入门基础(爬楼梯、国王与金矿)

1. 动态规划算法题目描述:每次可以爬1个或2个台阶,问爬到第 n 个台阶,一共有多少种不同的方法。动态规划中包含三个重要的概念:最优子结构、边界、状态转移公式最优子结构是状态转移方程的的一个特例,状态转移公式是可以套用的F(1)=1; //边界F(2)=2; //边界F(n)=F(n-1)+F(n-2) (n&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;=3); //状态转移方程,里面的n就是状态F(10)...

2019-03-01 09:14:36 505

空空如也

空空如也

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

TA关注的人

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