自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dawn_after_dark的博客

To be a special coder!

原创 剑指Offer-69-树中两个节点的最低公共祖先

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 输入两个树的节点,求他们的公共的最低祖先节点。 解析 其实此类题目,如果不考虑各种优化的情况下,采用最普通的深度优先搜索,从跟节点记录到指定的节点的路径。这样我们遍历2次树后,就可以得到2...

2018-12-13 00:08:04 394 0

原创 剑指Offer-68-机器人的运动范围

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人...

2018-11-18 11:33:01 1639 0

原创 剑指Offer-67-矩阵中的路径

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵...

2018-11-18 09:25:35 121 0

原创 剑指Offer-66-滑动窗口的最大值

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 项目地址:https://github.com/SpecialYy/Sword...

2018-11-14 22:34:28 122 0

原创 剑指Offer-65-数据流中的中位数

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我...

2018-11-11 00:22:13 132 0

原创 浅谈RESTful架构风格

RESTful REST (representation state transfer)表述性状态转移。该架构主张服务端维护资源状态,客户端维护会话状态,消除服务端维护客户请求状态的开销,有利于服务器横向扩展和负载均衡。 REST使服务器处于无状态,及服务器仅仅管理资源的状态,会话的状态的需要客户...

2018-11-10 11:49:51 1572 0

原创 剑指Offer-64-二叉搜索树的第k个节点

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 给定一棵二叉搜索树,请找出其中的第k小的结点。 解析 二叉搜索树是这样定义的:它允许是棵空树;根节点的值小于其所有左子树中的节点,根节点的值大于其所有右子树中的节点。其左右子树的所有节点也...

2018-11-01 00:16:24 164 0

原创 剑指Offer-63-序列化二叉树

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 请实现两个函数,分别用来序列化和反序列化二叉树。 解析 首先要了解什么是序列化。 序列化指的是将对象转换成字节码形式或其他文本格式以方便我们进行持久化或网络传输。 反序列化就是根据转换后...

2018-10-31 00:05:00 159 0

原创 Mac下unzip解压文件名乱码问题

前言 zip为windows平台常用压缩文件格式,在团队协作中,经常会碰到同事发过来的zip格式压缩文件。我们在mac一般利用unzip来解压,在文件名全是英文的情况可以很好的解决问题,但是如果文件名包含中文,则会出现乱码问题,本文旨在提供一个最简单的方式解决该问题。 方案 为什么unzip不能h...

2018-10-29 13:25:13 4638 1

原创 剑指Offer-62-把二叉树打印成多行

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 解析 这道题看似考察是层次遍历,其实不然,该题添加了按行打印的需求。其实这道题与这一题非常类似,我也在那一题中给出本题的解...

2018-10-27 00:43:22 136 0

原创 剑指Offer-61-按之字形顺序打印二叉树

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解析 首先我们要知道如何层级遍历且按行输出...

2018-10-26 00:33:00 152 0

原创 剑指Offer-60-对称的二叉树

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 解析 首先要理解对称二叉树是个什么样子的,如下图就是一个简单的对称的二叉树。...

2018-10-25 00:45:29 144 0

原创 剑指Offer-59-二叉树的下一个节点

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 问题 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 解析 这道题考察对二叉树和其遍历方式的理解。中序遍历...

2018-10-20 16:12:52 219 0

原创 剑指Offer-58-删除链表中重复的节点

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3-&g...

2018-10-15 16:13:26 177 0

原创 mac环境变量

查看环境变量 env env为environment的缩写,列出所有的环境变量。 set set查看所有的变量(包含环境变量和自定义变量),其中自定义变量主要为一些与bash接口有空的变量以及用户自定义的变量。其中重要的几个如下: PS1='\h:\W \u\$ ' # 命令...

2018-10-13 23:50:47 703 0

原创 剑指Offer-57-链表中环的入口节点

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 题目 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 解析 预备知识 此处指的是单链表存在的环的情况,以下图为似: 我们目标就是要找环的入...

2018-09-10 00:35:31 286 0

原创 剑指Offer-56-字符流中第一个不重复的字符

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 题目 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,...

2018-09-08 17:31:33 126 0

原创 剑指Offer-55-表示数值的字符串

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1...

2018-09-07 19:02:19 108 0

原创 剑指Offer-54-正则表达式匹配

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 题目 请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹...

2018-09-06 17:35:39 105 0

原创 剑指Offer-53-构建乘积数组

项目地址:https://github.com/SpecialYy/Sword-Means-Offer 题目 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。...

2018-09-04 21:21:50 114 0

原创 剑指Offer-52-数组中重复的数字

题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 解析 预备...

2018-08-29 23:17:47 109 0

原创 Spring-AOP的JDK动态代理的局限性

前言 今天在做一个业务需求的时候,目标是为服务接口的实现类定义切面来解耦某些与业务无关的操作。期间突然萌生了一个想法:我们知道spring-aop在被通知类拥有的接口的情况下默认采用JDK动态代理模式来织入切面的,而JDK动态代理只会对接口中定义的方法进行拦截,那么被代理中自定义的方法在调用时会...

2018-08-29 22:02:13 523 0

原创 剑指Offer-51-把字符串转换成整数

题目 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入 +2147483647 1a33 输出 ...

2018-08-27 23:09:44 214 0

原创 JedisConnectionFactory的设置连接方法过时(Deprecated)的解决方案

前言 JedisConnectionFacotory从springboot 2.0开始已经不推荐直接显示设置连接的信息了,一方面为了使配置信息与建立连接工厂解耦,另一方面抽象出Standalone,Sentinel和RedisCluster三种模式的配置类,使得我们可以更加灵活方便根据实际业务场...

2018-08-27 14:33:45 24279 6

原创 剑指Offer-50-不用加减乘除做加法

题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 解析 预备知识 首先观察题目要求,不能使用加减乘除法,此时必然只能用位运算来做。题目考察的其实解释加法的底层实现机制,比如常见的加法器的原理。 一般的加法器原理:会先对相加的两个数做不进位加法,...

2018-08-26 15:50:44 160 0

原创 剑指Offer-49-求1+2+3+...+n

题目 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 解析 预备知识 首先观察题目要求,不能使用乘除法,循环和显示的判断语句的等。而求1+2+3+...+n的做法通常是需要用到循环的或者递归...

2018-08-26 10:40:43 199 0

原创 剑指Offer-48-孩子们的游戏(圆圈中最后剩下的数)

题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任...

2018-08-23 01:50:20 675 0

原创 剑指Offer-47-扑克牌顺子

题目 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…..L...

2018-08-22 01:31:46 93 0

原创 剑指Offer-46-翻转单词顺序列

题目 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a ...

2018-08-21 01:20:15 100 0

原创 剑指Offer-45-左旋转字符串

题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即”XYZdefabc”。是不是很简单?OK,搞定它!...

2018-08-19 23:43:28 98 0

原创 剑指Offer-44-和为S的两个数字

题目 输入描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述 对应每个测试案例,输出两个数,小的先输出。 解析 预备知识 首先,我们需要知道一个知识,就是对于一组总和...

2018-08-18 20:29:27 207 0

原创 剑指Offer-43-和为S的连续正数序列

题目 输入描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给...

2018-08-18 01:05:31 127 0

原创 剑指Offer-42-数组中只出现一次的数字

题目 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。 解析 预备知识 这个题目与另一个常规的题目很像哦,就是一个整数数组中除了一个数字出现一次以外,其他数字都出现了偶数次,请找出这个数字。 我们都知道异或操作,它属于位运算,同一位上...

2018-08-16 01:18:45 80 0

原创 剑指Offer-41-平衡二叉树

题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解析 预备知识 平衡二叉树:它是一棵空树,或者它的左右子树的高度差不超过1,同时它的左右子树为一棵二叉树。而衡量树和平衡因子说的就是左右子树的高度差,可以为0,1,-1。如下图它就是一棵平衡二叉树: 思路一 如何判断一棵...

2018-08-15 13:55:52 688 0

原创 基于Spring的Web项目运行时切换数据源的一种解决方案

场景需求 需要对于一些请求在运行时访问不同的数据库,并且各个请求是独立的互不影响的。 解决方案 首先在配置中定义多个数据源,并为每个数据源指定id 用一个枚举类定义多个数据源id对应的常量值 用ThreadLocal来为每一个请求保存当前使用的数据源id 新建一个类,比如为Dynami...

2018-08-13 15:09:54 582 0

原创 剑指Offer-40-二叉树的深度

题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 解析 预备知识 树的深度为根节点到叶子节点中所有的路径长度最长的值。如图: 图中根节点到叶子节点最长的路径为:1->3-&gt...

2018-08-13 01:07:52 130 0

原创 Establishing SSL connection without server's identity verification is not recommended.

web项目连接数据库出现以下错误: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and ...

2018-08-12 14:52:16 276 0

原创 剑指Offer-39-数字在排序数组中出现的次数

题目 统计一个数字在排序数组中出现的次数。 解析 预备知识 在排序数组中,高效的查找指定数字可以采用二分查找,该方法的复杂度为O(logn),它可以看做有序数组中查找的标配!思路如下: 1. 首先有个指针start,end分别指向数组的开头和结尾,k为待查数字。 2. 判断st...

2018-08-12 00:45:17 88 0

原创 剑指Offer-38-两个链表的第一个公共节点

题目 输入两个链表,找出它们的第一个公共结点。 解析 预备知识 2个单向链表相交后的示意图如下所示: 从上图的得知,若两个链表相交,那么这两个链表应该具有相同的尾部,也就是说呈现出Y型。因为单向链表中只有一个next域指向后继结点,所以从第一个相交点开始都是两个链表的公共部分...

2018-08-11 00:45:39 143 0

原创 剑指Offer-37-数组中逆序对

题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 解析 预备知识 逆序对:如果前面一个数字大于后面的数字,则这两个数字组成...

2018-08-10 00:57:11 99 0

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