自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 输入一个字符串,打印出该字符串的所有排列

//字符串中字符不重复,打印字符串所有组合。例如"a,b,c"输出a;b;c;ab;ac;bc;abcpublic class StrCombine { public static void main(String[] args) { String str = "abcd"; char[] c = str.toCharArray(); StringBuilder sb = new StringBuilder(); for (int .

2020-08-22 04:29:08 891

原创 输入一个字符串,打印出该字符串的所有排列

//输入一个字符串,打印出该字符串的所有排列;例如输入abc的输出abc;acb;bac;bca;cab;cbapublic class StrFullCombine { public static void main(String[] args) { String str = "abc"; char[] charArray = str.toCharArray(); getFullCombine(charArray, 0); } p

2020-08-22 04:27:34 1182

原创 二叉树的深度

package com.tree;//求二叉树的深度public class TreeDepth { public static int getTreeDepth(TreeNode root){ if(root==null) return 0; int left = getTreeDepth(root.left); int right = getTreeDepth(root.right); return right > l

2020-08-22 02:55:23 120

原创 判断二叉树树是否是平衡二叉树

package com.tree;public class IsBalanceTree { public static boolean isBalanceTree(TreeNode root,int[] dep){ if(root==null){ dep[0] = 0; return true; } int[] leftDep = new int[1]; int[] rightDep

2020-08-22 02:54:39 99

原创 找树中两个节点最近的公共父节点

package com.tree;public class CommonParent { public static TreeNode commonParent(TreeNode root, TreeNode A, TreeNode B) { if(root==null){ return null; } if(root==A||root==B){ return root; }

2020-08-22 02:53:19 463

原创 找搜索二叉树中第k大的值

package com.tree;public class BinarySearchKth { public static TreeNode getBinarySearchKth(TreeNode root, int k) {//中序遍历到第k个返回 TreeNode target = null; if (root.left != null) { target = getBinarySearchKth(root.left, k);

2020-08-22 02:51:26 554

原创 将数组中0移动至右端,其他元素相对位置不变。

package com.arr;import java.util.Arrays;/*{0,2,5,0,0,4,6}->[2, 5, 4, 6, 0, 0, 0]将数组中0移动至右端,其他元素相对位置不变。*/public class Zero2ArrRight { public static void main(String[] args) { int[] arr = {0,2,5,0,0,4,6}; setZero2Last(arr);

2020-08-22 02:49:07 372

原创 数组中的奇数放左端,偶数放右端

package com.arr;import java.util.Arrays;//将数组的奇数放在数组左边,偶数放在右边public class JiOuSort { public static void main(String[] args) { int[] arr = {3, 1, 4, 2, 5, 6};// getSortedJiOuArr_01(arr);// getSortedJiOuArr_02(arr); S

2020-08-22 02:44:27 873

原创 判断一个树是否是搜索二叉树

import java.util.Stack;public class DiDi { static TreeNode pre = null; public static boolean isBinarySearchTree(TreeNode root) {//递归实现 if (root == null) { return true; } if (!isBinarySearchTree(root.left)) {

2020-08-17 21:46:27 226

原创 完全背包问题

package com.dongtaiguihua;import java.util.Arrays;//完全背包问题//有n种物品,物品的价值为v[2,4,7];对应的重量w[6,5,10],背包的容量为c = 10,计算包最多装物品的价值?(每个物品可以取无限个)public class PackageCompletely { public static void main(String[] args) { int[] w = {5, 7};//重量 in

2020-08-15 17:57:21 109

原创 多重背包问题

package com.dongtaiguihua;import java.util.Arrays;//多重背包问题//有n种物品,物品的价值为 w = {3, 4, 5};对应的重量v = {2, 3, 4},每种物品的数量m = {4, 3, 2},背包的容量为c = 15,计算包最多装物品的价值?(每个物品可取个数有限制)public class PackageMulti { public static void main(String[] args) { int[]

2020-08-15 17:56:19 142

原创 01背包问题

递推公式:getPakage01():从左往右,从上往下插值getPakage02:public class Package01 {//https://blog.csdn.net/chanmufeng/article/details/82955730 //##################################### public static int getPakage01(int[] w, int[] v, int C) { int size

2020-08-15 03:59:06 127

原创 最长回文子串中心扩展和动态规划方法

public class LongestPalindrome {//https://blog.csdn.net/tiankong_12345/article/details/102018257?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-

2020-08-15 02:33:48 173

原创 凑成n元最少需要多少硬币

有面值分别为1,3,5的三种硬币若干,凑成n元最少需要多少硬币?/** * 有面值分别为1,3,5的三种硬币若干,凑成n元最少需要多少硬币? */public class Coins { public static void main(String[] args) { int[] coins = {1, 3, 5}; System.out.println(minCoinNum(coins, 10)); } private static in

2020-08-15 00:59:56 387

原创 RabbitMQ

1.集群模式1.1 普通集群模式创建的queue,只会放在一个rabbtimq实例上,每个RabbitMQ实例都同步queue的元数据。读取时访问到了实际数据不在的实例,它会从queue所在实例上拉取数据过来。没有高可用性。1.2 镜像集群创建的queue,无论元数据还是queue里的消息都会存在于多个实例上,然后每次写消息到queue的时候,都会自动把消息到多个实例的queue里进行消息同步。没有扩展性。2....

2020-08-14 13:30:52 228

原创 设计模式-责任链模式

用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。1. 类图2. 代码示例场景场景现实中,请假的OA申请,请假天数如果是半天到1天,可能直接主管批准即可;如果是1到3天的假期,需要部门经理批准;如果是3天到30天,则需要总经理审批;大于30天,正常不会批准。请求类public class LeaveRequest { /**天数*/

2020-08-11 01:22:15 83

原创 反转英文句子

反转英文句子public class ReverseSentence { public static void main(String[] args) { System.out.println(reverseSentence("I love you very much")); System.out.println(reverseSentenceStringBuilder("I love you very much")); } public sta

2020-08-06 16:58:05 478

原创 二叉树前、中、后序遍历

import java.util.LinkedList;import java.util.List;import java.util.Stack;public class TraversalTree { public static class TreeNode { private TreeNode left; private TreeNode right; private Integer val; public TreeNod

2020-08-06 00:40:15 77

原创 堆排序(非递归)

import java.util.Arrays;public class HeapSort { public static void main(String[] args) { int[] arr = {1, 3, 67, 4, 0, 100, 33}; heapSort(arr); System.out.println(Arrays.toString(arr)); } public static void heapSort(i

2020-08-05 21:51:25 176

原创 3个线程顺序打印ABC

package com.imooc.bigdata.hbase.api;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class PintABC {private static vol

2020-08-05 20:01:34 123

原创 Redis启动数据加载流程

Redis启动数据加载流程:AOF持久化开启且存在AOF文件时,优先加载AOF文件。AOF关闭或者AOF文件不存在时,加载RDB文件。加载AOF/RDB文件成功后,Redis启动成功。AOF/RDB文件存在错误时,Redis启动失败并打印错误信息。...

2020-08-04 13:20:29 707

原创 将一个数组的0移动到数组最后,非0相对位置保持不变。

public static void main(String[] args) { int[] arr = new int[]{1, 0, 0, 5, 0}; setZero2Last(arr); System.out.println(Arrays.toString(arr)); } public static void setZero2Last(int[] array) { int cur = 0; for (int i =

2020-08-03 22:21:02 418

原创 对折纸张

同一方向对折纸张n次,凹记为0,凸记录为1。输入 n 输出序列。public class PaperFolding { public static void folding(int n){ paperFolding(1, n, false); } public static void paperFolding(int i, int n, boolean flag){ if (i > n) return; paperFoldi

2020-08-03 17:51:14 270

原创 java面试记录

1.Spring Bean的生命周期https://www.jianshu.com/p/1dec08d290c12.Redis缓存热点问题1.内存淘汰机制设置为allkeys-lfu或者volatile-lfu(Least Frequently Used)方式 最近最少使用 (LRU是最近最少未使用)2.web服务本地把热点的数据进行缓存3.热点商品上线前需要预热4.更新商品信息机制,如何在商品信息更新后,及时更新缓存中的商品信息3.Redis缓存一致性问题更新操作时,1.先删除Redis

2020-08-01 21:06:24 182 2

原创 volatile

1. volatile主要有以下两个功能:保证变量的内存可见性禁止volatile变量与普通变量重排序2. volatile变量与普通变量排序规则:如果第一个操作是volatile读,那无论第二个操作是什么,都不能重排序;如果第二个操作是volatile写,那无论第一个操作是什么,都不能重排序;如果第一个操作是volatile写,第二个操作是volatile读,那不能重排序。...

2020-07-31 15:50:47 93

原创 5.如何保证消息的顺序性?

1. 消息顺序会错乱两个场景1.1. RabbitMQ1.2. Kafka比如说我们建了一个 topic,有三个 partition。生产者在写的时候,可以指定一个 key,比如指定了某个订单 id 作为 key,key相同的数据,一定会被分发到同一个 partition中去,而且这个 partition 中的数据一定是有顺序的。2. 解决方案2.1. RabbitMQ1)拆分多...

2020-07-29 14:56:49 239

原创 设计模式-装饰器模式

装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法。1.图示:IO源码应用:// 创建原始的数据源:InputStream fis = new FileInputStream("test.gz");// 增加缓冲功能:InputStream bis = new BufferedInputStream(fis);// 增加解压缩功能:InputStream gis = new GZIPInputStream(bis);Component是接口,对应到IO的

2020-07-22 15:39:07 125

原创 设计模式-模板方法模式

类图:模板方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤;其中,AbstractClass为抽象模板类,定义了算法的骨架TemplateMethod(),具体子类将重定义PrimitiveOperation以实现一个算法的步骤;ConcreteClass继承AbstractClass实现了方法PrimitiveOperation1()、PrimitiveOperation2()以完成算法中具体实现步骤。代码示例:..

2020-07-08 14:23:48 89

原创 设计模式-观察者模式

类图:代码示例:主题Subjectpublic class Subject { //观察者数组 private Vector<Observer> oVector = new Vector<>(); //增加一个观察者 public void addObserver(Observer observer) { this.oVector.add(observer); } //删除一个观察者 publi

2020-07-08 11:27:47 87

原创 设计模式-代理模式

https://www.jianshu.com/p/9cdcf4e5c27d

2020-07-08 10:39:42 595

原创 设计模式-装饰器(Decorator)模式

装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法。1.图示:Decorator:抽象类,实现Apple接口。ConcreteDecoratorA、ConcreteDecoratorB:继承Decorator类。2.示例代码  假设我们需要渲染一个HTML的文本,但是文本还可以附加一些效果,比如加粗、变斜体、加下划线等。为了实现动态附加效果,可以采用Decorator模式。首先,仍然需要定义顶层接口TextNode:public interface TextN

2020-07-07 15:01:35 148

原创 设计模式-适配器模式

将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。1. 类适配器适配器通过 继承被适配类,实现目标接口 完成适配。代码示例:目标接口:public interface Target { void request();}被适配类:public class Adaptee { public void adapteeRequest() { System.out.println("被适配者的方法"); }}适配器:public

2020-07-07 11:31:41 102

原创 设计模式-单例模式

1.饿汉式public class Singleton { // 静态字段引用唯一实例: private static final Singleton instance = new Singleton(); // 通过静态方法返回实例: public static Singleton getInstance() { return instance; } // private构造方法保证外部无法实例化: private Single

2020-07-06 17:31:51 90

原创 设计模式-工厂模式

1.抽象工厂1.图示:工厂是抽象的,产品是抽象的,每个实际工厂负责创建一系列产品。2. 示例代码:假设我们希望为用户提供一个Markdown文本转换为HTML和Word的服务,它的接口定义如下:抽象工厂public interface AbstractFactory { // 创建Html文档: HtmlDocument createHtml(String md); // 创建Word文档: WordDocument createWord(String md

2020-07-06 17:07:26 119

原创 重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7show me your code:class Solution { //在中序序列中查找与前序序列首结点相同元素的时候,如果使用 while 循环

2020-06-15 18:24:38 94

原创 tomcat8配置APR模式

1. 安装相关依赖包 :yum -y install gcc gcc-c++ libtool* autoconf automake expat-devel perl perl-devel1.1. 安装apr :cd /tmp/wget http://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gztar xf apr-1.6.5.tar.gz cd apr-1.6.5./configure --prefix=/usr/local

2020-06-10 17:24:58 399

原创 SpringBoot配置文件读取

1. 方法1@Data@Component@ConfigurationProperties(prefix = “curator”)1.1. 配置文件application.propertiescurator.retryCount=5 #重试次数curator.elapsedTimeMs=5000 #重试间隔时间curator.connectString=127.0.0.1:2...

2020-04-22 18:27:27 103

原创 TCC框架

SeataTM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的 XID;XID 在微服务调用链路的上下文中传播;RM 向 TC 注册分支事务,将其纳入 XID 对应全局事务的管辖;TM 向 TC 发起针对 XID 的全局提交或回滚决议;TC 调度 XID 下管辖的全部分支事务完成提交或回滚请求。...

2020-04-22 16:47:07 458 1

原创 MySql面试题

1.InnoDB&&MyISAM1.1. InnoDB支持事务,支持行级锁走聚簇索引(叶子节点存数据,数据存储与索引放到了一块)强制要求主键支持外键关联1.2. MyISAM不支持事务,不支持行级锁是非聚簇索引(叶子节点存指针)不支持外键约束...

2020-02-28 17:20:20 95

原创 JVM

1.JVM内存模型程序计数器:记录了线程执行的字节码行号。java虚拟机栈:每个方法执行的时候都会创建一个栈帧(stack frame)用于存放局部变量表、操作栈、动态链接、方法出口。每一个方法从调用直至执行完成的过程,就对应一个栈帧在虚拟机中入栈到出栈的过程。局部变量表所需的内存空间在编译期间完成分配,在方法运行期间不会改变局部变量表的大小。存在StackOverflowError(超过...

2020-01-17 14:30:33 119

统计学习方法(李航)

这是李航的统计学习方法电子版,是机器学习,深度学习,人工智能入门必看的一本书。 想赚点能够去下载一些资源,所以各位请见谅。内是网盘链接。

2018-10-09

李宏毅-机器学习(视频2017完整)

这是台湾李宏毅的机器学习视频,是2017年秋季的。包含完整视频PDF格式的PPT。想赚点积分能够去下载一些资源,所以各位请见谅。内是网盘下载地址。

2018-10-09

空空如也

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

TA关注的人

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