- 博客(103)
- 资源 (5)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 判断有向图是否存在环的2种方法(深度遍历,拓扑排序)
此题是美团2017春招实习生在线笔试题,题目是“如何判断有向图有没有回路”,这里给出两种解法以供参考。解法一:深度遍历假设图以邻接矩阵表示,一条深度遍历路线中如果有结点被第二次访问到,那么有环。我们用一个变量来标记某结点的访问状态(未访问,访问过,其后结点都被访问过),然后判断每一个结点的深度遍历路线即可。 因为采用邻接矩阵存储,一般至少需要将矩阵中元素的一半给过一下,由于矩阵元素个数为n^2,因
2017-09-16 11:01:22
90140
11
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 CNN卷积神经网络和反向传播
本文内容来自: 1,Michael Nielsen的《Neural Networks and Deep Learning》中文翻译 2,http://www.cnblogs.com/pinard/p/6494810.html 3,http://blog.csdn.net/yunpiao123456/article/details/52437794卷积神经网络基础:首先看一下全连接网络,即神经元
2017-08-26 16:03:41
65419
13
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 b树和b+树的区别
一,b树b树(balance tree)和b+树应用在数据库索引,可以认为是m叉的多路平衡查找树,但是从理论上讲,二叉树查找速度和比较次数都是最小的,为什么不用二叉树呢? 因为我们要考虑磁盘IO的影响,它相对于内存来说是很慢的。数据库索引是存储在磁盘上的,当数据量大时,就不能把整个索引全部加载到内存了,只能逐一加载每一个磁盘页(对应索引树的节点)。所以我们要减少IO次数,对于树来说,IO次数就是树
2017-07-17 21:02:37
42854
9
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 随机森林和GBDT的区别
一,随机森林随机森林是一个用随机方式建立的,包含多个决策树的集成分类器。其输出的类别由各个树投票而定(如果是回归树则取平均)。假设样本总数为n,每个样本的特征数为a,则随机森林的生成过程如下:从原始样本中采用有放回抽样的方法选取n个样本; 对n个样本选取a个特征中的随机k个,用建立决策树的方法获得最佳分割点;重复m次,获得m个决策树; 对输入样例进行预测时,每个子树都产生一个结果,采用多数投
2017-06-30 00:20:54
37825
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java的Integer和int有什么区别
Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换,对应如下:原始类型:boolean,char,byte,short,int,long,f
2017-04-30 12:15:45
54451
8
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 如何处理分类中的训练数据集不均衡问题
本文参考自:http://blog.csdn.net/heyongluoyao8/article/details/49408131,有删改。什么是数据不均衡?在分类中,训练数据不均衡是指不同类别下的样本数目相差巨大。举两个例子:①在一个二分类问题中,训练集中class 1的样本数比上class 2的样本数的比值为60:1。使用逻辑回归进行分类,最后结果是其忽略了class 2,将所有的训练样本都分
2017-01-09 16:45:09
32444
原创 redis持久化简介
持久化简介持久化一般有两种思路:将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据。将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程。以上两种思路在redis中分别对应RDB和AOF。RDB在redis命令行输入SAVE命令就能手动执行一次RDB持久化。但这种前台启动的方式会阻塞当前Redis服务器,直到当前RDB过程完...
2020-05-11 22:35:06
463
原创 keepalived安装配置实现高可用
介绍为了防止单点组件不可用,本文介绍用keepalived实现主备双节点高可用,主节点不可用后自动切换到备节点继续提供服务。另外,keepalived还可以做负载均衡。安装在组件对应的机器上安装:yum install -y keepalived主节点配置我们以禅道zbox为例写一个配置,如下。首先check_zbox.sh是一个检测脚本,检测应用是不是可用,不可用时停止keepa...
2019-09-15 00:06:11
496
原创 rsync同步文件
介绍为了实现组件的高可用,比如gitlab或者禅道,一般会在不同机器分别安装gitlab,它们公用一个外接的数据库。但是gitlab在本地还会有一些数据生成,这些数据在各个gitlab之间也需要保持一致,可以采用rsync实现不同机器之间的文件同步。安装以禅道双节点为例,所有安装了禅道客户端的机器安装rsync,命令:yum install -y rsync主节点配置切换到主禅道所在...
2019-09-14 23:28:14
575
原创 CDH6.0.1离线安装
计划用vmware虚拟机安装三个节点,其中Cloudera Manager Server一台(用来管理),cdh两台(Hadoop主从)。所有操作在root用户下进行。版本:软件版本osCentOS Linux release 7.5.1804jdk1.8.0_141cm(Cloudera Manager)cm6(6.0.1)cdh(Parcels)...
2019-07-05 09:09:44
3012
1
原创 使用rke搭建k8s集群
计划三台机器用rke安装k8s,rke安装之前先配好一台,然后克隆。版本信息:软件版本osCentOS Linux release 7.5.1804docker18.06.2-cerkev0.2.4(默认k8s版本:v1.13.5-rancher1-3)一、装机,配静态ip,装常用软件用vmware最小化安装centos7后,修改主机名和hosts...
2019-06-28 11:25:35
5422
转载 Go语言学习8:深入理解切片slice
slice定义slice是个结构体,源码如下:// runtime/slice.gotype slice struct { array unsafe.Pointer // 元素指针 len int // 长度 cap int // 容量}slice 共有三个属性:指针,指向底层数组;长度,表示切片可用元素的个数,也就是说使用下标对 slice 的...
2019-06-20 22:21:03
569
原创 Go语言学习7:并发
并发与并行go是支持并发的语言。并发的程序往往是在单核中交替运行的(通信开销小),并行的程序往往是多核同时运行的(通信开销大)。Go 协程(Goroutine)Go 协程是与其他函数或方法一起并发运行的函数或方法。Go 协程可以看作是轻量级线程。与线程相比,创建一个 Go 协程的成本很小。package mainimport ( "fmt" "time")...
2019-06-12 14:22:08
401
原创 redis入门操作
Try Redis链接:http://try.redis.io该网站可以直接在网页端练习redis命令。Redis是键值存储的NoSQL数据库。我们可以使用命令SET将字符串(string)类型的值"fido"存储在键"server:name"中:> SET server:name "fido"OK然后可以用命令GET根据键进行查询:> GET server:name...
2019-05-24 15:13:45
757
翻译 nginx初学者指南
1NGINX 启动后,有一个主进程(master process)和一个或多个工作进程(worker process),主进程的作用主要是读入和检查NGINX的配置信息,以及维护工作进程;工作进程才是真正处理客户端请求的进程。工作进程个数在 NGINX 的配置文件nginx.conf中指定。可以通过以下这些命令来控制 NGINX:nginx -s [ stop | quit | reopen...
2019-05-15 23:50:40
329
原创 ansible基础命令
基础ansible命令ansible采用ssh的方式操作远程机器,首先我们需要在ansible所在机器创建一个hosts文件记录要操作机器的ip。[root@vm1 ansible-test]# cat hosts [master]192.168.178.129[node]192.168.178.130# 设置k8s组包含这俩组[k8s:children]masternod...
2019-05-07 23:51:20
757
原创 prometheus学习4:多集群高可用
前言在Prometheus设计上,使用本地存储可以降低Prometheus部署和管理的复杂度同时减少高可用(HA)带来的复杂性。 在默认情况下,用户只需要部署多套Prometheus,采集相同的Targets即可实现基本的HA。当然本地存储也带来了一些不好的地方,首先就是数据持久化的问题,特别是在像Kubernetes这样的动态集群环境下,如果Promthues的实例被重新调度,那所有历史监控...
2019-05-07 14:29:32
39240
5
原创 prometheus学习3:告警Alertmanager
告警介绍如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息,以邮件等方式通知运维人员。Alertmanager可以对这些告警信息进行进一步的处理,比如当接收到大量重复告警时能够消除重复的告警信息,同时对告警信息进行分组并且路由到正确的通知方。告警规则ru...
2019-05-04 20:24:51
2502
原创 prometheus学习2:PromQL
PromQL是Prometheus内置的监控数据查询语言。根据标签过滤直接使用监控指标名称查询时,可以查询该指标下的所有时间序列。如:http_requests_total等同于:http_requests_total{}该表达式会返回指标名称为http_requests_total的所有时间序列:http_requests_total{code="200",handler="a...
2019-04-29 16:56:05
1678
原创 prometheus学习1:快速上手
安装运行先把程序跑起来再说,不懂的概念后边再看。官网:https://prometheus.io首先下载并解压如下包:prometheus-2.9.1.linux-amd64.tar.gz进入解压后的目录,运行./prometheus即可,浏览器输入机器IP加9090端口查看页面,页面比较简单,自己瞎点点就知道啥是啥了。prometheus服务端安装完毕,为了监控主机信息,安装node...
2019-04-24 18:43:39
1185
原创 Go语言学习6:接口
接口定义了一组方法,但是这些方法不包含实现代码(它们是抽象的),接口里也不能包含变量。接口指定了一个类型应该具有的方法,并由该类型决定如何实现这些方法。类型通过实现一个接口的所有方法来实现该接口。package mainimport ( "fmt")type SalaryCalculator interface { CalculateSalary() int}t...
2018-11-26 19:01:20
376
原创 Go语言学习5:结构体、方法
struct结构体结构体是用户定义的类型,表示若干个字段的集合。有时应该把数据整合在一起,而不是让这些数据没有联系。Go 语言中没有类的概念,结构体就像是类的一种简化形式。命名的结构体package mainimport ( "fmt")type Employee struct { firstName, lastName string age, salary...
2018-11-26 16:38:08
403
原创 Go语言学习4:数组、切片、map映射
数组数组是同一类型元素的集合。举例:package mainimport "fmt"func main() { var a [2]string a[0] = "Hello" a[1] = "World" fmt.Println(a) primes := [6]
2018-11-25 22:50:35
546
原创 Go语言学习3:函数
一般的函数package mainimport "fmt"func add1(x int, y int) int { return x + y}func add2(x, y int) (r1, r2 int) { r1 = x + y r2 = 0 return}func main() { a := add1(1, 2) b, _...
2018-11-25 17:02:44
373
原创 Go语言学习2:变量、常量、类型、指针
变量:package mainimport "fmt"func main() { var ( a int = 1 b string = "hello" c bool = true d = false e, f int = 3, 4
2018-11-23 15:54:08
866
原创 Go语言学习1:安装与Hello world
下载地址:https://studygolang.com/dl下载对应系统的压缩包即可。Windows解压至自定义的安装目录。新建系统变量GOROOT,值为前边的安装目录,如D:\Program Files\go。新建系统变量GOPATH,值为自定义的Go项目的保存路径,如D:\workspaces\GOPATH。编辑path变量,添加%GOROOT%\bin。测试:命令行输入g...
2018-11-23 13:06:45
512
原创 Java多线程笔记三(线程通信wait/notify/notifyAll/sleep/yield/join)
一,wait()、notify()、notifyAll()1,信号量线程间通信的一个最简单方式是在共享对象的变量里设置信号量。线程A在一个同步块里设置boolean型成员变量hasDataToProcess为true,线程B也在同步块里读取hasDataToProcess这个成员变量。下面的例子使用了一个持有信号的对象,并提供了set和check方法:public class MySignal{
2017-10-02 15:12:00
1071
原创 Java多线程笔记二(synchronized的使用以及实现原理)
同步关键字synchronizedjava关键字synchronized用来标记方法或者代码块是同步的。它是Java中解决并发问题的一种最常用的方法,作用主要有:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见。 synchronized总共有四种用法: (1)修饰普通方法 (2)修饰静态方法 (3)修饰普通方法中的代码块 (4)修饰静态方法中的代码块修饰普通方法pub
2017-09-17 15:29:56
727
原创 Java多线程笔记一(创建运行,相关概念,JVM内存模型,线程有几种状态,死锁)
快速开始:创建并运行Java线程Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。创建线程并运行相应代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口。1,创建Thread的子类创建Thread子类的一个实例并重写run方法,run方法会在调用start()方法之后被执行。例子如下:publ
2017-09-16 22:46:43
871
原创 Java集合类基础(List,Set,Map)
集合类简介Java的集合类主要由两个接口派生而出:Collection和Map,这两个接口又包含了一些接口或实现类。 一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供Collection的直接实现,提供的类都是继承自Collection的“子接口”如Li
2017-09-16 17:12:26
1702
原创 Linux常用vim命令(不断更新。。。)
ctrl + n,vim代码补全。:%s/^A/\t/g,把^A分割符替换成tab。%表示全局范围查找,g表示所有查找到的都会被替换,^A是按ctrl+a出来的。一个数字n + 上下键,上下翻n页。dd,删除游标所在的一整行(常用)。附录:手感类似IDE的vi设置,修改~/.vimrc文件如下:set nocompatibleset numberset nobackupfiletype
2017-08-27 16:56:32
487
原创 Linux常用Shell命令(不断更新。。。)
cat 00* > a,把当前目录下所有00开头的文件合并到一个新文件a。>>表示文件追加操作。wc -l a,输出文件a的行数。参数-w表示统计字数。l
2017-08-27 16:09:20
687
原创 TensorFlow入门(基础语法,小程序)
本文参考自:莫烦Python - Tensorflow 教程系列TensorFlow入门:使用图 (graph) 来表示计算任务.在被称之为 会话 (Session) 的上下文 (context) 中执行图.使用 张量(tensor) 表示数据.通过 变量 (Variable) 维护状态.使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从
2017-08-27 15:17:04
10675
2
原创 《剑指Offer》Java版目录(源码下载)
《剑指Offer》PDF版下载:点我书中全部50道题目的Java实现如下,java源码下载:点我剑指Offer面试题1面试题2单例模式 剑指Offer面试题3二维数组查找 剑指Offer面试题4替换空格 剑指Offer面试题5反向打印链表 剑指Offer面试题6重建二叉树(根据前序中序输出后序) 剑指Offer面试题7用两个栈实现队列(附带用两个队列实现栈) 剑指Offer面试题8旋转数
2017-08-18 10:37:27
4228
3
原创 剑指Offer面试题49字符串转整数,面试题50二叉树两个结点的最低公共祖先
面试题49:字符串转整数这里的整数是指int,要考虑的问题如下: 1,输入null或空串; 2,正负号; 3,非法字符; 4,int越界(所以返回类型定义为long)。 Java实现如下:public class StrToInt { public static long str2int(String str) throws Exception{ if(str ==
2017-08-17 18:50:14
755
原创 剑指Offer面试题47不用加减乘除做加法(位运算),面试题48不能被继承的类(final)
面试题47:不用加减乘除做加法思路:用位运算分三步,第一步不考虑进位对每一位相加(结果就是做异或的结果);第二步记下进位,只有1+1会产生进位(等于先做与运算再左移一位);第三步更新两个数分别为异或的结果和与的结果,重复前面两步直到不产生进位。 相关问题:不使用新变量交换两个变量的值 基于加减法: a = a + b; b = a - b; a = a - b; 基于异或: a = a
2017-08-13 15:02:19
591
原创 剑指Offer面试题45圆圈中最后剩下的数字(约瑟夫环问题),面试题46求1+2+...+n
面试题45:圆圈中最后剩下的数字(约瑟夫环问题)0,1…n-1这n个数字排成一个圆圈,从第一个人开始报数,数到m的人出局,然后从下一个人开始报数,求这个圈圈里剩下的最后一个数字。 思路:可用ArrayList模拟链表弄出一个圈,删到最后就剩一个数时输出,详见程序。 Java实现如下:public class LastRemaining { static int lastRemaining
2017-08-13 14:42:50
840
原创 MySql基础教程二(视图,存储过程,游标,触发器,事务,权限,数据类型)
我的学习资料是《MySQL必知必会》,被称为sql入门经典,PDF版下载点我。 相关链接: MySql基础教程一(查询,插入,更新,删除,创建)视图视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。比如下面的语句:select cust_name, cust_contact from customers, orders, orderitems where custome
2017-08-12 16:14:19
2151
原创 MySql基础教程一(查询,插入,更新,删除,创建)
我的学习资料是《MySql必知必会》,被称为sql入门经典,PDF版下载点我。 相关链接: MySql基础教程二(视图,存储过程,游标,触发器,事务,权限,数据类型)热身use 数据库名;show 数据库名或者表名;describe 表名;查询过滤,排序,控制显示行数select * from testtable where cust_id between 1 and 10 order b
2017-08-07 19:21:12
1057
etc文件下mysql的配置文件
2017-05-22
mingw64安装程序
2017-05-16
已经编译好的xgboost
2017-05-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人