自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习印记 Learning imprint

记录点滴 Record bit by bit

  • 博客(303)
  • 资源 (7)
  • 收藏
  • 关注

原创 Git-cherry pick

questionDue to work requirements, I need to merge some commits from a branch to another branch.cherry pick using IDEAfix conflictswhen cherry-picking a commit to another branch, it may conflict. Fix code conflicts and run “git cherry-pick --continue”

2021-05-14 14:39:50 381

原创 Debugging Artifact ——jump to line

When I debug my code, I want to jump some lines which needn’t execute, especially there are many “if/else” in the code. With this idea, I searched the internet. Finally, I find two ways to jump code when debugging.1.modify the param value to jump “if” se

2021-03-23 23:06:16 489

原创 REST Client——Feign

Feign is a declarative web service client. It makes writing web service clients easier.include feign <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> &lt

2021-03-13 22:55:19 263

原创 CEO’s speech

I have joined the foregin company for less than a month. This is the first meeting with CEO who looks very kind. Although he is Chinese, he is good at English. His speech was simple and clear. What impressed me was that one person asked a question, and th

2021-03-06 14:31:21 266

原创 Springboot integrated swagger

Add Swagger dependency to pom <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId

2021-03-06 13:16:49 141

原创 设计模式——模板模式

定义在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。使用场景当一个操作有固定的几个步骤时,可以把步骤抽象出来定义的父类的抽象类中,而用子类去具体的实现每个步骤。模板模式也常和其他模式联合使用,比如可以和责任链模式联合,责任链中的每个具体类可以是抽象模板类的具体实现。类图图片来自 https://www.cnblogs.com/qq-3618075

2021-01-07 13:45:03 151 1

原创 《刻意练习——如何从新手到大师》——创造天才

文章目录好的学习方式天才是可以训练的年龄大为什么有时反而容易被替代什么是有目的的练习?遇到瓶颈怎么办?专家强在哪?如何变得杰出警句本文主要记录了我读后感受深的地方,加上自己的理解做的一些总结。我感觉这本书最主要是给人以信念,天才是可以人造的,任何人都能进步,只要按照:刻意练习(有目的的练习)+正确的方法,而那些杰出的人付出了更多的努力和时间。好的学习方式成年人一种好的方式:情景中学习,找到“学习共同体”,进入共同体圈子的核心,模仿榜样,做更重要的工作,最终成为专家。天才是可以训练的人人都有可以成

2021-01-06 10:14:57 444

原创 《麦肯锡工作法——麦肯锡精英的39个工作习惯》——职场工作守则

文章目录保持“从零开始”解决问题流程分析和解决问题主动总没错,重视沟通重视效率紧急-重要模型做人30秒快速汇报寻找良师这里只谈我印象深一点的习惯和自己的理解。保持“从零开始”不要被对方的假设和表象问题所引导,要有能溯源问题本质的能力,去除假设从零开始,可以通过逐步提出问题,由表入里找到问题的本质原因。解决问题流程掌握真正的问题对问题进行整理收集情报提出假设验证假设思考解决办法实行解决办法分析和解决问题用思维导图逻辑树的方式对问题分解和分类后,在想出每个子问题的解决方案,按重要顺

2021-01-05 20:50:09 685 2

原创 两个数组A和B的长度相同,找出 A[i] > B[i] 数量最多的A的一个排序结果,保证A对应B的顺序不变

题目 两个数组A和B的长度相同,找出 A[i] > B[i] 数量最多的A的一个排序结果,保证A对应B的顺序不变 A=[2,5,9,1] B=[6,3,7,4] 因为A[i] > B[i]的数共有两个,比如A的一个结果可以是 A=[9,1,2,5]分析 对B排序获得新数组:bSort=[3,4,6,7],被使用过后就把值改为 -1 (或者其他标志性的值) bSort 相对于B数组的顺序索引数组:bLocation=[1,3,0,2]

2020-12-30 15:36:00 650

原创 求一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数

题目求一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数分析这里给出满足条件的最小整数和所有满足条件的整数 //m ,n 为整数 x+100=m^2 x+100+168=n^2 n^2 - m^2 = 168 (n+m)(n-m) = 168(n+m)(n-m) = 168 从这里可以看出 m和n取值在 [1, 169] 之间代码/** * 找出最小的满足条件的 x * @return */ public st

2020-12-23 16:50:34 2407 2

原创 堆排序——java实现

堆定义可以参考这篇文章(有排序图形过程很赞)图解排序算法(三)之堆排序这里以大顶堆为例,构建一个二叉树,根节点要满足大于左右子节点。用数组表示一个堆,我们用简单的公式来描述一下堆的定义就是:大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2] 小顶堆:arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2] 排序过程这里以构建大顶堆为例先构建一个大顶堆,构建过程

2020-12-18 14:18:25 258 1

原创 归并排序——java实现

分析归并排序的思想主要是分而治之,先将数组像二叉树一样拆分成多个,然后对每个部分排序,排序后的数组再逐渐合并到一起。具体分析过程可以看这篇文章(图画的很赞) 归并排序代码 public static void mergeSort(int[] arr){ int len = arr.length; //临时数组存放每段排好序的数组 int[] temp = new int[len]; splitSort(arr, 0, len-1, tem

2020-12-12 20:49:21 175 2

原创 Leetcode53 最大子序和

题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。分析代码public static int largestSubArray(int[] a){ if(a == null || a.length == 0){ return 0; } int

2020-12-12 17:55:16 236

原创 LeetCode415 字符串相加

题目字符串相加124123142414121431 + 123124151515121 = ?分析双指针两个字符串倒着相加,指针下标为负数数时补0代码public static String addLargeNums(String a, String b){ int len1 = a.length(); int len2 = b.length(); if(len1 == 0){ return b; }

2020-12-12 16:59:43 179 1

原创 LeetCode88 合并有序数组

题目/** * ClassName: MergeSortArray <br/> * Function: 合并有序数组<br/> * [1, 2, 2, 5] * [3, 4, 7, 8] * * */分析双指针移动从前往后的比较代码public static int[] mergeSortArray(int[] a, int[] b){ int length1 = a.length, length2 = b.length;

2020-12-12 16:18:54 1067 2

原创 Leetcode257二叉树所有路径及路径和

文章目录题目一:二叉树所有路径分析代码变形: 所有路径和题目描述分析代码结果参考资料题目一:二叉树所有路径/** * ClassName: LeetCode257SumTree <br/> Function: <br/> * * 给定一个二叉树,返回所有从根节点到叶子节点的路径。 * * 说明: 叶子节点是指没有子节点的节点。 * * 输入: * * 1 * / \ * 2 3 * \ * 5 * * 输出:

2020-12-12 15:19:13 265 2

原创 顺时针打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7] 限制:0 <= matrix.length <= 1000 <= matrix[i].length

2020-12-05 20:29:35 195

原创 Concurrent 包结构介绍

java 中Concurrent 包下面提供了java的并发编程的一些基本工具,能够使我们更高效写出线程安全的代码,也减少了自己使用不当导致线程死锁的可能。Concurrent 包主要包括 atomic基本类型类,基于AQS各种锁的实现,线程池框架,线程安全的集合类,线程并发控制类(CountDownLatch,CyclicBarrier),future接口实现。结构Concurrent 包下面包含了 atomic 包和 locks 包,还有Concurrent 下面直接的类。atomic 包at

2020-11-21 17:56:45 1911 7

原创 ArrayList 和 LinkedList

其实数组和链表是最基本的数据结构,栈、队列、树、图都是在这两个基本结构的基础上去实现的。java中常用的数组和链表实现是ArrayList 和 LinkedList。ArrayList该类通过transient Object[] elementData; 保存数据,默认大小是10,类的继承关系图add操作末尾插入和在某个位置插入public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments mo

2020-11-21 17:07:03 192 1

原创 三色球

题目有红、黄、蓝三种颜色的气球。在牛客王国,1个红气球+1个黄气球+1个蓝气球可以兑换一张彩票。2个红气球+1个黄气球可以兑换1个蓝气球。2个黄气球+1个蓝气球可以兑换1个红气球。2个蓝气球+1个红气球可以兑换1个黄气球。现在牛牛有a个红气球,b个黄气球, c个蓝气球,牛牛想知道自己最多可以兑换多少张彩票。示例1:输入1,7,5输出3说明可以用4个黄气球和2个蓝气球换2个红气球,这样就有了3个红气球,3个黄气球,3个蓝气球,可以换3个彩票。备注:0≤a,b,c≤1e9第

2020-11-19 01:18:22 879

转载 leetcode134 加油站

题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入: gas = [1,2,3,4,5]cost = [3,4,5,1,2

2020-11-18 01:39:38 110

原创 leetCode670 最大交换

题目给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例:输入: 2736输出: 7236解释: 交换数字2和数字7。输入: 9973输出: 9973解释: 不需要交换。注意:给定数字的范围是 [0, 108]解法解法一像冒泡排序一样循环和前面固定一位数字比较,如果比前面大就交换,解法二leetcode 给的官方解法思路:代码实现:public static int swap2maxNum(int num) { char[]

2020-11-18 00:59:52 136

原创 求m的n次方

方法递归法二分法,不断将n二分有点难得理解,是将n化成二进制,然后把1的那些数位乘起来,我也没看懂可以直接参考 求m的n次方代码实现这里给出递归和二分法的实现 /** * 递归法 * @param m * @param n * @return */ public static Long nthPowerRecursion(int m, int n){ if(n == 0){ return 1L;

2020-11-14 12:06:45 1496

原创 多线程顺序打印123

synchronized实现public class OrderPrint { private static Integer num = 1; static class Thread1 implements Runnable{ @Override public void run(){ while (true){ synchronized (this){ if(

2020-11-07 17:42:17 710

原创 求树的高度

方法递归求树高度层次遍历记录树高后序遍历,结点最大栈长即为二叉树的高度递归public static int height(TreeNode root){ if(root == null){ return 0; } int m = height(root.getLeft()); int n = height(root.getRight()); return m > n ? m+1 :

2020-11-07 17:15:25 649

转载 生成分布式 ID的几种方法

可以直接阅读这篇文章如果再有人问你分布式ID,这篇文章扔给他参考资料如果再有人问你分布式ID,这篇文章扔给他

2020-10-26 20:12:49 144

转载 LeetCode20. 有效的括号

题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 :输入: "([)]"输出: false输入: "{[]}"输出: true分析栈解答public boolean isValid(String s) { int n = s.length(); if (n % 2 == 1)

2020-10-26 02:45:14 149

转载 LeetCode68 二叉树的最近公共祖先

题目分析复杂度分析:时间复杂度 O(N): 其中 NN 为二叉树节点数;最差情况下,需要递归遍历树的所有节点。空间复杂度 O(N) : 最差情况下,递归深度达到 NN ,系统使用 O(N)O(N) 大小的额外空间剑指 Offer 68 - II. 二叉树的最近公共祖先解答 public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root == null || r

2020-10-26 02:20:07 118

原创 最长公共子串

题目有两个字符串(可能包含空格),请找出其中最长的公共连续子串,输出其长度。(长度在1000以内)例如:输入:abcde bcd输出:3分析推到过程有点麻烦,还是直接看这两篇的分析吧动态规划经典例题——最长公共子序列和最长公共子串最长公共子串(动态规划)解答 /** * 最长公共子串 * @param s * @param t * @return */ public static int getLCS(String s, Str

2020-10-26 02:02:36 190

原创 LeetCode1143 最长公共子序列

题目给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列,则返回 0。分析动态规划来自 1143. 最长公共子序列解答 pu

2020-10-26 01:38:52 137

原创 Leetcode 121 买卖股票的最佳时机

Leetcode121 题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买

2020-10-25 23:52:09 108

原创 LeetCode 922 按奇偶排序数组 II

题目给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。分析双指针指针 i 只遍历偶数位,指针 j 只遍历奇数位i 指针遍历偶数位发现是奇数时,则从 j 指针中找出一个偶数并与之交换时间复杂度:

2020-10-25 18:01:14 104

原创 有序数组中找a+b=m的数据对

题目给定升序整形数组和m,a和b是数组中的两个元素;求a+b=m的数据对有多少?输入数组 [1, 2, 4, 5, 6, 7], m = 9,输出 [2, 7], [4, 5]分析双指针i,j 前后找求和和m比较,大于m后移 j,小于m 前移 i解答public static void main(String[] args) { int[] num = {1, 2, 4, 5, 6, 7}; System.out.println(findList(num,

2020-10-25 17:36:39 612 4

转载 leetcode 146 LRU缓存机制

题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。示例:LRUCach

2020-10-25 15:00:55 167

转载 二维矩阵从左上角到右下角路径数及最小路径和

从左上角到右下角路径数 LeetCode 62动态规划法class Solution { public int uniquePaths(int m, int n) { int[][] dp = new int[m][n]; for (int i = 0; i < n; i++) dp[0][i] = 1; for (int i = 0; i < m; i++) dp[i][0] = 1; for (int i = 1;

2020-10-24 23:19:47 2280

原创 最长回文子串-java版

题目LeetCode 5给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解法暴力尝试找出字符串的所有子串判断是否是回文子串,如果是找出其中的最大长的/** * 判断是否是回文 * @param str * @return */ public static bo

2020-10-24 20:23:06 725

原创 java并发——锁

分类概念分类公平锁/非公平锁可重入锁排它锁/共享锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁/适应性自旋锁主要是按java中出现的一些锁的概念,下面会具体每一类在java中的具体应用底层实现分类CAS(基于cpu指令)Synchronized (对象头,monitor锁)AQS以上是只是个人感觉,每种的实现原理我的blog中都有,可以参看公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。对于ReentrantLock而言,通过构造函数指定该锁

2020-10-07 23:29:54 116

原创 分布式事务

可以直接阅读参考资料中的文章再有人问你分布式事务,把这篇扔给他分布式事务本地事务在我的文章《事务》里已有说到,本文主要介绍分布式事务。分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。分布式事务的基础CAP,base定理可以参考

2020-10-07 22:24:12 74

原创 java并发——synchronized浅析

原理部分内容可以直接看这篇文章深入理解Java并发之synchronized实现原理synchronized 用法它的修饰对象有几种:修饰一个类,其作用的范围是synchronized后面括号括起来的部分, 作用的对象是这个类的所有对象。class ClassName { public void method() { synchronized(ClassName.class) { // todo } }}修饰一个方法,被修饰的方法称为

2020-10-07 18:22:52 164

原创 java并发——CAS浅谈

CAS,Compare And Swap,即比较并交换。Doug lea大神在同步组件中大量使用CAS技术鬼斧神工地实现了Java多线程的并发操作。整个AQS(抽象队列同步)同步组件、Atomic原子类操作等等都是以CAS实现的,甚至ConcurrentHashMap在1.8的版本中也调整为了CAS+Synchronized。可以说CAS是整个JUC的基石。cas实现CAS(Compare and Swap) 是利用底层硬件平台特性,实现原子性操作的算法,Java 1.5 以后 JUC(java.uti

2020-10-07 17:43:10 238

程序员面试宝典(第4版)

程序员面试的一本金典书籍,相信找工作的人都知道,这是迷你版的,不全包涵。

2013-11-06

PHP微信公众平台接口类及演示

PHP微信公众平台接口类及演示,其中包含消息回复,自定义菜单,订阅消息推送等功能代码

2013-09-28

zookeeper ppt教程

zookeeper ppt教程,让初学者对zookeeper有更好的了解

2013-09-28

微信公众平台注册与认证

详细描述了微信公众平台的注册与认证流程,及在开发模式下能实现的功能

2013-09-28

宿舍管理系统

宿舍管理系统+论文 c++编写,可正常运行,采用access作为数据库,希望对你有帮助。

2013-02-21

各种算法图解

数据结构书里面的各种算法的详细图解

2013-02-21

空空如也

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

TA关注的人

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