- 博客(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 946
原创 输入一个字符串,打印出该字符串的所有排列
//输入一个字符串,打印出该字符串的所有排列;例如输入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 1225
原创 二叉树的深度
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 158
原创 判断二叉树树是否是平衡二叉树
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 130
原创 找树中两个节点最近的公共父节点
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 510
原创 找搜索二叉树中第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 585
原创 将数组中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 436
原创 数组中的奇数放左端,偶数放右端
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 926
原创 判断一个树是否是搜索二叉树
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 253
原创 完全背包问题
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 143
原创 多重背包问题
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 182
原创 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 160
原创 最长回文子串中心扩展和动态规划方法
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 208
原创 凑成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 452
原创 RabbitMQ
1.集群模式1.1 普通集群模式创建的queue,只会放在一个rabbtimq实例上,每个RabbitMQ实例都同步queue的元数据。读取时访问到了实际数据不在的实例,它会从queue所在实例上拉取数据过来。没有高可用性。1.2 镜像集群创建的queue,无论元数据还是queue里的消息都会存在于多个实例上,然后每次写消息到queue的时候,都会自动把消息到多个实例的queue里进行消息同步。没有扩展性。2....
2020-08-14 13:30:52 278
原创 设计模式-责任链模式
用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。1. 类图2. 代码示例场景场景现实中,请假的OA申请,请假天数如果是半天到1天,可能直接主管批准即可;如果是1到3天的假期,需要部门经理批准;如果是3天到30天,则需要总经理审批;大于30天,正常不会批准。请求类public class LeaveRequest { /**天数*/
2020-08-11 01:22:15 117
原创 反转英文句子
反转英文句子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 530
原创 二叉树前、中、后序遍历
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 107
原创 堆排序(非递归)
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 201
原创 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 160
原创 Redis启动数据加载流程
Redis启动数据加载流程:AOF持久化开启且存在AOF文件时,优先加载AOF文件。AOF关闭或者AOF文件不存在时,加载RDB文件。加载AOF/RDB文件成功后,Redis启动成功。AOF/RDB文件存在错误时,Redis启动失败并打印错误信息。...
2020-08-04 13:20:29 778
原创 将一个数组的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 464
原创 对折纸张
同一方向对折纸张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 303
原创 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 219 2
原创 volatile
1. volatile主要有以下两个功能:保证变量的内存可见性禁止volatile变量与普通变量重排序2. volatile变量与普通变量排序规则:如果第一个操作是volatile读,那无论第二个操作是什么,都不能重排序;如果第二个操作是volatile写,那无论第一个操作是什么,都不能重排序;如果第一个操作是volatile写,第二个操作是volatile读,那不能重排序。...
2020-07-31 15:50:47 125
原创 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 271
原创 设计模式-装饰器模式
装饰器(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 163
原创 设计模式-模板方法模式
类图:模板方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤;其中,AbstractClass为抽象模板类,定义了算法的骨架TemplateMethod(),具体子类将重定义PrimitiveOperation以实现一个算法的步骤;ConcreteClass继承AbstractClass实现了方法PrimitiveOperation1()、PrimitiveOperation2()以完成算法中具体实现步骤。代码示例:..
2020-07-08 14:23:48 119
原创 设计模式-观察者模式
类图:代码示例:主题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 124
原创 设计模式-装饰器(Decorator)模式
装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法。1.图示:Decorator:抽象类,实现Apple接口。ConcreteDecoratorA、ConcreteDecoratorB:继承Decorator类。2.示例代码 假设我们需要渲染一个HTML的文本,但是文本还可以附加一些效果,比如加粗、变斜体、加下划线等。为了实现动态附加效果,可以采用Decorator模式。首先,仍然需要定义顶层接口TextNode:public interface TextN
2020-07-07 15:01:35 178
原创 设计模式-适配器模式
将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。1. 类适配器适配器通过 继承被适配类,实现目标接口 完成适配。代码示例:目标接口:public interface Target { void request();}被适配类:public class Adaptee { public void adapteeRequest() { System.out.println("被适配者的方法"); }}适配器:public
2020-07-07 11:31:41 141
原创 设计模式-单例模式
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 125
原创 设计模式-工厂模式
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 148
原创 重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 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 126
原创 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 464
原创 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 132
原创 TCC框架
SeataTM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的 XID;XID 在微服务调用链路的上下文中传播;RM 向 TC 注册分支事务,将其纳入 XID 对应全局事务的管辖;TM 向 TC 发起针对 XID 的全局提交或回滚决议;TC 调度 XID 下管辖的全部分支事务完成提交或回滚请求。...
2020-04-22 16:47:07 503 1
原创 MySql面试题
1.InnoDB&&MyISAM1.1. InnoDB支持事务,支持行级锁走聚簇索引(叶子节点存数据,数据存储与索引放到了一块)强制要求主键支持外键关联1.2. MyISAM不支持事务,不支持行级锁是非聚簇索引(叶子节点存指针)不支持外键约束...
2020-02-28 17:20:20 131
原创 JVM
1.JVM内存模型程序计数器:记录了线程执行的字节码行号。java虚拟机栈:每个方法执行的时候都会创建一个栈帧(stack frame)用于存放局部变量表、操作栈、动态链接、方法出口。每一个方法从调用直至执行完成的过程,就对应一个栈帧在虚拟机中入栈到出栈的过程。局部变量表所需的内存空间在编译期间完成分配,在方法运行期间不会改变局部变量表的大小。存在StackOverflowError(超过...
2020-01-17 14:30:33 156
李宏毅-机器学习(视频2017完整)
2018-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人