自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pao___pao的博客

抓不住的沙,一把扬了它

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 代理模式

代理模式属于结构型模式,和装饰器模式很像,都可以为对象进行功能扩展,对装饰器模式来说,装饰者和被装饰者都实现同一个接口,对代理模式来说,代理类和被代理类都实现同一个接口。但两者侧重点不同,装饰器模式关注于在一个对象上动态的添加方法,而代理模式关注于控制对对象的访问。用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。因此,当使用代理模式的时候,我们常常在一个代理类中创...

2019-09-11 01:42:09 127

原创 装饰器模式

装饰器模式属于结构型模式,允许向一个现有的类添加新功能,同时又不改变其结构,只是作为现有的类的一个包装。意图:动态给一个类添加额外功能。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决:一般扩展一个类经常使用继承方式实现,随着扩展功能的增多,子类会很膨胀。何时使用:不想增加子类的情况下扩展类,可代替继承。Java输入输出流是典型的装饰器模式interface Action...

2019-09-11 00:17:27 165

原创 策略模式

策略模式属于行为型模式,可以将算法和调用者独立开。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。interface Strategy{ int operate(int a,int b);}cla...

2019-09-10 23:56:29 145

原创 SnowFlake算法生成分布式唯一ID

参考https://www.cnblogs.com/lirenzuo/p/8440413.htmlID一般用来作为数据库表的主键,需要保证唯一性,通常情况下可以有以下几种方式实现:1.UUID(Universally Unique Identifier):UUID是由一组32位数的16进制数字所构成的通用唯一识别码,可以保证ID的全局唯一性,但由于数据库或者文件系统的索引一般是由B+树...

2019-08-14 23:14:57 329

原创 Java中的线程池

为什么要有线程池?如果并发线程数量很多,且每个线程执行任务时间很短,就会频繁创建和销毁线程,这种开销会大大降低系统的效率。为了线程的复用有了线程池这一概念。1.线程池的创建工具类Executors里提供了多种创建线程池的静态方法:public class Executors { ... //创建一个固定大小的线程池。适用于可以预测线程数量的业务中,或者服务器负载较...

2019-08-09 16:20:51 96

转载 Catalan数

本文由https://blog.csdn.net/adminabcd/article/details/46672759总结可解决问题:1.n个节点二叉树有多少种形态?2.矩阵链乘:P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,有多少种括号化的方案?3.一个栈(无穷大)的进栈序列为1,2,3,..n,有多少个不同的出栈序列?4.有2...

2019-07-09 21:27:14 739

原创 滑动窗口

滑动窗口是用两个指针来维持一个窗口,并通过相应策略来更新窗口的一种解题思路1.和为S的连续正数序列:(如果S=100,则18,19,20,21,22为其中一个序列)public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { ArrayList<ArrayList&lt...

2019-06-29 18:18:26 320

原创 Java内存区域

参考<深入理解Java虚拟机:JVM高级特性与最佳实践>JVM在执行Java程序时,会把所管理的内存划分为若干个不同的内存区域。1.程序计数器: PC占用较小的内存空间,它的作用可以看作当前线程所执行字节码的行号指示器,通过改变PC的值来选取下一条需要执行的字节码指令。由于JVM多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,为了线程切换后能恢复到正确的执...

2019-05-24 19:44:05 151

原创 数据库隔离级别

参考https://www.cnblogs.com/fjdingsd/p/5273008.html如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:A(原子性),C(一致性),I(隔离性),D(持久性)。其中隔离性是指:当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。即要达到这么一种效果:...

2019-04-22 23:30:57 124

原创 背包问题

1.0-1背包:n件物品,每件重量为w[i],价值为c[i]。现有一个容量为V的背包,问如何选取物品放入背包,使的背包内物品总价值最大,最大价值是多少,其中每件物品只有一件。public int maxValue(int[] w,int[] c,int n,int V){ int[] dp = new int[V+1]; for(int v = 0;v &lt;= V;v +...

2019-03-10 13:51:30 163

原创 动态规划

1.数塔:如图,第n层有n个数字,求从顶到底每条路径数字相加和的最大值:状态转移方程:dp[i][j] = max(dp[i+1][j],dp[i+1][j+1]) + f[i][j],其中dp[i][j]表示从第i层第j个位置到底层路径数字相加和的最大值,f[i][j]为第i层第j个位置上的数字。2.最大连续子序列和:状态转移方程:dp[i] = max(a[i],dp[i-1]...

2019-03-08 23:30:07 145

原创 一些经典的位运算

1.统计一个整数转化为二进制之后1的个数:public int NumberOf1(int n) { int val = 0; while(n != 0){ n &amp;= n-1; val ++; } return val;}2.判断一个数是不是2的幂:public boolean isPowerOfTwo(in...

2019-03-02 21:14:44 199

原创 Decision Tree

决策树算法既可用于分类也可用于回归,常见的三个版本:ID3,C4.5,CART。scikit-learn使用了优化版的CART算法作为其决策树算法的实现。ID3:信息熵表示了信息的混乱程度:信息增益:比如我们有15个样本D,输出为0(6个)或者1(9个)。 样本有个特征A,取值为A1(5个),A2(5个),A3(5个)。在取值为A1的样本的输出中,有3个输出为1, 2个输出...

2019-02-23 22:20:22 152

原创 Native Bayes

d为属性数目,xi为x在第i个属性上的取值。对于特定样本,分母是相同的,取分子最大的类别.对于离散属性:对于连续属性(假设概率密度函数服从正态分布,和分别为c类样本在第i个属性上取值的均值和方差):为了避免其他属性携带的信息被训练集中未出现的属性值抹去,在估计概率值时通常要进行平滑,即拉普拉斯修正。其中N为训练集D中可能的类别数,Ni表示第i个属性可能的取值数,...

2019-02-23 20:55:44 513

原创 Gradient Descent

梯度下降可分为BGD,SGD,MBGD算法注意事项:步长选择过小,迭代速度慢;选择过大,有可能不收敛 GD求的只是局部最小值,最好多次用不同的初值计算,选择最小的那个 由于样本不同特征的取值范围不一样,可能导致迭代很慢,可以对特征数据归一化 和牛顿法/拟牛顿法相比,两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。相对而言,使用牛...

2019-01-29 21:59:58 694

原创 Regularization

如果没有足够的数据集约束过多特征的模型,就会发生过拟合。解决过拟合通常有两个方法:减少特征数量;正则化根据正则化项不同可分为L1正则化和L2正则化,线性回归的L1正则化叫Lasso回归,L2正则化叫Ridge回归线性回归: 梯度下降迭代更新:(其中j = 1,2......n ; )      {                               }...

2019-01-29 21:17:30 501

原创 Logistic Regression

假设函数:(表示P{y=1 | x;}) 损失函数:         梯度下降迭代更新:{            }

2019-01-29 12:23:30 114

原创 Linear Regression

假设函数:损失函数:正规方程求:(Normal Equation无需迭代,无需选取值;但是不适合特征数量n &gt; 10000的情况,求逆时间复杂度O())梯度下降迭代更新:(其中j = 0,1,2......n){            }梯度下降的矩阵方式:(X为m*(n+1)矩阵,Y为m*1维输出向量)还有些高级优化算法求,共轭梯度(PC...

2019-01-29 12:04:11 281

原创 排序算法之归并排序

算法简介时间复杂度O(n*logn),空间复杂度O(n) 稳定性:稳定代码public void mergeSort(int[] array,int low,int high){ if(low &gt;= high) return; int mid = (low + high)/2; mergeSort(array, low, mid); mergeS...

2018-09-12 05:14:15 93

原创 排序算法之基数排序

算法简介基数排序利用了hash的思想,和桶排序类似,但用的桶要少很多,排序过程不含任何比较 限制条件比较多,负数要单独处理(加偏置量变成非负数或者正负数分开处理再合并) 时间复杂度O(d(r+n)) ,其中d为关键字位数,r为基数(桶的个数),n为关键字个数 空间复杂度O(r) 稳定性:稳定代码public int[] radixSort(int[] array){ /...

2018-09-11 16:21:39 178

原创 排序算法之堆排序

算法简介:将array[0,...,n-1]看成是一颗完全二叉树的顺序存储结构,则双亲节点和孩子节点存在如下关系:        i :父节点:i==0  ?  null  :  (i-1)/2                     左孩子:2*i + 1    右孩子:2*i + 2升序用大根堆,降序用小根堆,java中PriorityQueue底层就是用堆来实现的 空间复杂度:O...

2018-09-10 19:49:50 103

转载 全排列及其引申问题

全排列问题是经典的算法题目。实现可以使用库函数(如STL next_permutation), 也可以递归回溯法。同时其follow up又包括:当排列中有重复元素时如何处理;next permutaion的实现原理;查找第K个排列等。本文就这些问题进行讨论。 (转自https://www.cnblogs.com/wangxiaobao/p/5947633.html)1. 用nex...

2018-09-09 15:14:40 167

原创 二分查找及引申问题

1.在有序不重复元素中查找:public int BS(int[] num,int x) { int low = 0,high = num.length; int mid; while(low &lt;= high){ mid = (low + high)/2; if(x == num[mid]) return mid; ...

2018-08-29 22:58:30 527

原创 KMP算法

public int KMP(String s1, String s2) { if(s2.length() == 0) return 0; int i = 0,j = 0; int[] next = getNext(s2); while(i &lt; s1.length() &amp;&amp; j &lt; s2.length()){ if(j ...

2018-08-26 00:59:21 151

原创 mysql的一些小知识总结

1.Your password does not satisfy the current policy requirementsvim /etc/my.cnf[mysqld]下添加:validate_password.length=4;validate_password.policy=0;systemctl restart mysqld2.You must reset your passwo...

2018-04-28 13:18:43 129

原创 /var/log/mysqld.log 中找不到临时密码

centos7通过yum装完mysql,找不到root密码,网上文章都说了一条指令grep 'temporary password' /var/log/mysqld.log但是我的mysqld.log中根本没有temporary password,折腾了半天才找到解决方案,相信有小伙伴会遇到一样的问题,贴出来给大家参考:1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就...

2018-04-28 12:17:05 30503 31

原创 sqoop完成hive和mysql之间互导数据遇到的坑

sqoop完成hive  export到 mysql或者mysql import到hive时,其实是翻译成MapReduce job来执行的,所以看日志的地方有两个,一个是http://node1:8088(resoucemanager的web入口),另一个是http://node1:19888(jobhistory的web入口),我的是这么配置的。以下是我此过程遇到过的坑:1.18/0...

2018-04-18 21:26:39 8377

原创 Java中Comparable和Comparator

Java中对象排序的两种方式:1.实现Comparable接口2.实现Comparator接口其中Comparable在java.lang包下,Comparator在java.util包下,这两种方式具体实现方法和应用场景如下:1.Collections的sort()方法要求被排序对象必须实现Comparable接口并重写其中的compareTo()方法package tes...

2018-04-07 22:56:41 171

原创 MySQL不允许远程登录

Host is not allowed to connect to this MySQL server1. 在装有MySQL server主机上登录MySQL mysql -u root -p2. 执行use mysql;         默认有个名为mysql的database3. 执行update user set host = '%' where user = 'root';  ...

2018-03-23 11:23:05 403

转载 Hadoop 1.x和2.x区别和联系

问题导读1.hadoop1.x改造如果是两个jobtraker,你认为解决了什么问题?2.hadoop1.x改造如果是两个jobtraker,你认为未解决了什么问题?3.你如何看待hadoop2.x的yarn转载自http://blog.csdn.net/u012117710/article/details/536...

2018-03-06 21:35:33 435

大数据数据集

此为淘宝大数据集(过期而且改动过的),里面包含两个文件,一个是2000万行数据,一个30万行数据,供学习大数据技术hadoop,spark或者深度学习的朋友做测试分析用

2018-04-19

空空如也

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

TA关注的人

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