自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 收藏
  • 关注

原创 【算法】最长回文子串

题目 回文串(palindromic string)是指这个字符串无论从左读还是从右读,所读的顺序是一样的。简而言之,回文串是左右对称的。所谓最长回文子串问题,是指对于一个给定的母串。从所有的为回文串的子串a, ded, cdedc, bcdecdb中;找出最长的那一个bcdecdb。但是该如何判断子串是否回文然后找出最长者呢?解答一、暴力求解(时间复杂度O(n^3))...

2019-09-22 21:05:21 324

原创 【HEXO】github + hexo 搭建个人的博客

使用 github + Hexo 搭建个人的博客,这里记录一下几个常见命令:1、安装:npm install -g hexo2、创建一个新目录,然后在对应的文件夹下面初始化:hexo init3、测试启动: hexo g # 生成 hexo s # 启动服务,开启本地预览服务。4、上传到github:hexo d常用命令:hex...

2019-09-22 15:01:32 170

原创 【剑指Offer】斐波那契数列之青蛙跳台阶

题目 问题一:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 问题二:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析 分析问题一: 将跳法总数记为f(n),可以知道f(1)=1,f(2)=2。当n>2时,第...

2019-09-01 11:39:58 213

原创 【剑指Offer】翻转单词顺序列

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

2019-08-31 20:57:52 155

原创 【剑指offer】包含min函数的栈

题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。分析 新建一个数据栈,一个辅助栈。 入栈: 数据栈就是正常压入即可。 而对于辅助栈,如果每次都能把最小元素压入辅助栈,那么就能保证辅助栈的栈顶一直是最小元素。所以压入的时候...

2019-08-31 17:03:22 130

原创 【剑指offer】栈的压入、弹出序列

题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析 解决这个问题的方法是简历一个辅助栈,把输入序列...

2019-08-31 14:38:24 79

原创 【剑指offer】二叉树中和为某一值的路径

题目 输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。分析 几个要点 1、由于路径是从根节点出发到叶节点,也就是说路径总是以根节点为起始节点,因此我们需要遍历根节点。在树的前序、后序、中序遍历中,只有前序遍历是首先访问根节点的。 2、由于二叉树没有...

2019-08-30 16:06:19 89

原创 【Java】代理模式

代理模式代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。1)静态代理第一步:创建服务类接口public interface BuyCar { public void BuyCar();}第二步:实现服务接口public class BuyCarImpl implements Bu...

2019-07-15 20:28:54 109

原创 解决安装pyspider过程中,ERROR: Command "python setup.py egg_info" failed with error code 10 问题

今天在安装pyspider的时候遇到问题,报错:解决方法:到https://www.lfd.uci.edu/~gohlke/pythonlibs/上找到PycURL,根据python版本,电脑多少位,下载对应的软件包,放到你python安装的文件夹中。之后,再用pip2 install pycurl-7.43.0.3-cp27-cp27m-win_amd64.whl安装该软件包。...

2019-07-14 10:29:19 335

转载 【Java】抽象类与接口

抽象类:包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。注意,抽象类和普通类的主要有三点区别:1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。2)抽象类不能用来创建对象;3)如果一个类继承于一个抽象类,则子类必...

2019-07-10 15:34:53 134

原创 【记录一下】

今天犯了一个愚蠢的错误:我居然两个字节数组比较是否相等,我写的是if (数组1==数组2.)。。。这直接比较地址了好吗,怎么可能一样???

2019-06-26 17:30:24 107

原创 【Git使用】IDEA与git整合

1、首选,在IDEA中设置git,在File-->Setting--->Version Controller---Git---Path to Git executable选择你的git安装后的git.exe,像我的就是点击Test会出现:2、然后再IDEA中设置Github,File-->Setting->Version Control-->GibH...

2019-06-23 15:51:57 6781

原创 【剑指Offer】51、数组中的逆序对

题目 在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。思路 类似于归并排序。 我们用两个指针分别指向两个子数组的末尾,并每次比较两个指针指向的数字。 p1指向的数字大于p2指向的数字,存在逆序对。逆序对的数目 = 第二个数组中剩余数字的个数。将p1指...

2019-06-16 15:50:24 294 2

原创 【剑指offer】37、序列化二叉树

题目 请实现两个函数,分别用来序列化和反序列化二叉树。解题思路 通过先序遍历实现序列化和反序列化:1、假设序列化的结果字符串为str,初始的时候str=""。 先序遍历二叉树,如果遇到null节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点的值不存在,"!"表示值的结束。 如果遇到不为空的节点,假设节点的值为3,就在st...

2019-06-05 16:24:33 117

原创 【剑指offer】33、二叉搜索树的后续遍历序列

题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。思路 二叉树后序遍历数组的最后一个数为根结点,剩余数字中,小于根结点的数字(即左子树部分)都排在前面,大于根结点的数字(即右子树部分)都排在后面。根据遍历数组的这个特性,可以编写出一个递归函数,用于实现题目所...

2019-06-05 13:14:41 182

原创 【剑指offer】32、从上往下打印二叉树

题目(一)从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。(二)从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行。(三)请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。思路1、每次打印一个节点的时候,如果该节点有子节点,则把该节点的...

2019-06-04 15:19:47 182

原创 【Java源码】优先队列PriorityQueue

优先队列的作用: 优先队列的作用是保证每次取出的元素是队列中权值最小的。Java中,优先队列ProrityQueue的本质是通过一颗完全二叉树来实现小根堆。 其中,父节点和子节点之间的关系是:leftNo = parentNo*2+1rightNo = parentNo*2+2parentNo = (nodeNo-1)/2优先队...

2019-06-03 17:58:58 280

原创 【剑指offer】数据流中的中位数

题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路 采用大根堆+小根堆结合的方法,且满足: 两个堆中的数据数目差不能超过1,这样可以使中位数只会出现在两个堆的交接处; ...

2019-06-03 17:24:05 155

原创 【剑指offer】28、对称的二叉树

题目  请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。思路 针对前序遍历定义一种遍历算法,先遍历父节点,再遍历它的右子节点,最后遍历它的左子节点。 通过比较二叉树的前序遍历和对称前序遍历序列来判断二叉树是不是对称的。测试用例 1.功能测试(对称二叉树;结构不对称二叉树;结构对称但值不对...

2019-06-01 16:21:12 223 1

原创 【剑指offer】26、树的子结构

题目   输入两棵二叉树A和B,判断B是不是A的子结构。思路  1)先对A树进行遍历,找到与B树的根结点值相同的结点R;这一步相当于就是树的遍历。  2)判断A树中以R为根结点的子树是否包含和B树一样的结构。同样采用递归的思想:如果节点R的值和树B的根节点不同,则以R为根节点的子树和树B肯定不具有相同的节点;如果他们的值相同,则递归地判断他们各自的左右节点的值是否相同。递归的终止条...

2019-06-01 14:37:02 99

原创 解决IDEA中pom出现红波浪线,reimport无反应的问题

试了多种方法,比如删除pom.xml中的依赖再重新写入,或者右击,点maven,再点import,都不行。尝试一种粗暴的方法,点击项目的目录,然后删除.idea文件夹和xxx.iml文件。然后运行IDEA,导入项目的时候选择pom文件,即可。记得配置一下maven的user setting,还有Local Repository。还有一种方法是,用maven compile一下,...

2019-05-30 11:30:37 1821

原创 【Docker】Docker网络和容器的通信

一般情况下,Docker创建一个容器的时候,会具体执行如下操作:1.创建一对虚拟接口,分别放到本地主机和新容器的命名空间中;2.本地主机一端的虚拟接口连接到默认的docker0网桥或指定网桥上,并具有一个以veth开头的唯一名字,如veth1234;3.容器一端的虚拟接口将放到新创建的容器中,并修改名字作为eth0。这个接口只在容器的命名空间可见;4.从网桥可用地址段中获取一个空闲...

2019-05-29 14:09:14 146

转载 【Docker】Docker的4种网络模式

转载自https://www.cnblogs.com/gispathfinder/p/5871043.html,感谢这位博主。最近在研究Docker相关的内容,这篇文章给了我启发。我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:· host模式,使用--net=host指定。· container模...

2019-05-29 11:35:27 6649

原创 【Linux】centos7通过桥接上网

进入虚拟机的centos7系统中,修改centos7的ip。设置对应的ip,网关和子网掩码。出现虚拟机centos7系统可以ping通主机,但是主机ping不通虚拟机centos7系统的ip的问题分析原因如下:1、主机与centos7ip段对应(关键是网关、dns服务器要一一对应)2、对应后仍然不通的,可关闭主机与cenos7防火墙,centos7默认防火墙为fire...

2019-05-27 17:10:26 488

原创 【linux命令】修改linux主机时间

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime mv /etec/localtime /etc/localtime.bak输入date,显示正常:

2019-05-27 14:09:52 1053

原创 【项目】model、dao、service、controller

model→dao→service→controllermodelmodel与数据库中的实体一一对应,实现set和get方法。daoDAO,数据存取对象。与数据库打交道时,如果为每一个场景都去写一些SQL语句,会很麻烦和冗余,为了让代码清晰干净整洁,DAO类都是进行数据操作的类,是对于数据库中的数据做增删改查等操作的代码。service业务层,给controll...

2019-05-26 09:43:45 2269

原创 【剑指offer】17、打印从1到n最大的n位数

题目 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。解题思路 第一种思路是:先求出最大的n位数,然后用一个循环从1开始逐步打印。但是这个方法没有考虑到大数的问题。 第二种思路是: 在对字符串进行加1操作的函数中,对最低位进行加...

2019-05-25 15:41:06 627

原创 【剑指offer】16、数值的整数次方

题目 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。解题思路 对exponent进行分类讨论,同时也对base是否为0进行讨论。 exponent分为大于0,小于0,等于0。 当exponent大于0的时候,...

2019-05-25 10:52:52 101

原创 【数据结构与算法】例题八

选择的依据:哪个结束的早就先安排哪个。定义一个Program类,里面包含两个成员,分别是start和end,即开始的时间和结束的时间。当当前的时间小于项目开始的时间时,执行该项目,项目数加1,并且让当前时间推进到项目结束的时间。package bublleSort;import java.util.Arrays;import java.util.Comparator;p...

2019-05-19 16:23:12 162

原创 【数据结构与算法】

代价数组(cost):【, , , , , ,】利润数组(profit):【 , , , , , ,】对应位置: 0,1, 2, 3,4, 5对应位置的数值,就是它的花费,以及它的利润。最后获得的钱是代价+利润。给定初始资金是W(初金)100,一次只能做一个项目,在能做k个项目(最多k个)的情况下,获取的最大收益是?解题思路:1、数据结构:一个数组里,...

2019-05-18 17:12:39 159

原创 【剑指offer】切金条

题目思路 贪心策略是:把数组变成小根堆,每次都取堆中最小的,把这两个数的和再加到堆里。重复这样处理的过程,直到最后堆中只剩下1个数为止。 举个例子,1、2、6、4、3、7、1、8要组成小根堆:1)拿出2个1,将2个1结合,产生2,把2放回小根堆。此时小根堆含有2、6、4、3、7、8、22)拿出2个2,将2个2结合,产生4,把4放回小根堆。此时小...

2019-05-15 22:21:39 249 2

原创 【linux命令】

ps -efps命令将某个进程显示出来grep命令是查找中间的|是管道命令 是指ps命令与grep同时执行例如:以下这条命令是检查某某进程是否存在:ps -ef |grep 某某kill -9 pid 结束进程...

2019-05-10 16:01:05 87

原创 【剑指offer】29、 顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。解题思路:矩阵的行数是rows,矩阵的列数是cols,有一个矩阵是这样的,设这个矩阵的左上角的点的坐标是(0,0),该矩阵如下:(0,0) (0,1) (0,2) (0,3)(1,0) (1,1) (1,2) (1,3)(2,0) (2,1) (2,2) (2,3)(3,0) (3,1) (3,2)...

2019-05-10 15:43:28 191

原创 【剑指offer】53-1、数字在排序数组中出现的次数

题目 统计一个数字在排序数组中出现的次数。例如输入排序数组{1, 2, 3, 3,3, 3, 4, 5}和数字3,由于3在这个数组中出现了4次,因此输出4。解题思路 首先分析如何用二分查找算法在数组中找到第一个k。二分查找算法总是先拿数组中间的数字和k作比较。如果中间的数字比k大,那么k只有可能出现在数组的前半段,下一轮我们只在数组的前半段查找就可以了。如果...

2019-05-05 15:02:18 112

原创 【剑指offer】53-3、数组中数值和下标相等的元素

题目  假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实现一个函数找出数组中任意一个数值等于其下标的元素。例如,在数组{-3, -1,1, 3, 5}中,数字3和它的下标相等。解题思路不再从头到尾遍历,由于是排序数组,我们继续考虑使用二分查找算法:   1)当中间数字等于其下标时,中间数字即为所求数字;  2)当中间数字大于其下标时,在左半部分区域寻...

2019-05-05 14:34:16 180

原创 【剑指offer】53-2、0到n-1中缺失的数字

题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0到n-1之内。在范围0到n-1的n个数字中有且只有一个数字不在该数组中,请找出这个数字。解题思路 采用二分法来解决问题 如果数组中间的那个数等于其下标,那么要找的数应该在数组的后半段;low = mid+1 如果数组中间的那个数不等于其下标,...

2019-05-05 14:22:45 164

原创 【项目】深入理解IOC与AOP

IOC(控制反转、依赖注入)IOC这种思想,是说,我把一个类它的实现写在一个单独的地方,在用到的地方,用一个最简单的方式把它注入进来。(比如Spring中就是使用的@Autowired)然后就会在整个容器中去找,谁已经注册为一个toutiao.service。发现有一个对象,它就把这俩这连起来。这样,就不会被初始化的顺序啊,类与类之间的依赖啊所困扰。写完之后只需要注入进来就可以...

2019-05-02 22:56:49 349

原创 【剑指offer】int与char类型间的相互转化

如何将int类型和char类型进行转化:(1)int类型转char类型,将数字加一个‘0’,并强制类型转换为char即可。(2)char类型装int类型,将字符减一个‘0’即可。 public class charAndInt { public static void main(String[] args) { int number = 9; char ch =...

2019-05-02 10:36:58 270

原创 【剑指offer】55-2、平衡二叉树

题目 输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。解题思路 在二叉树深度的基础上修改:计算树的深度,树的深度=max(左子树深度,右子树深度)+1。在遍历过程中,判断左右子树深度相差是否超过1,如果不平衡,则令树的深度=-1,用来表示树不平衡。 最终根据树的深度...

2019-04-30 17:40:32 152

原创 【剑指offer】55-1、二叉树的深度

题目 输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的/结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路 树的深度=max(左子树深度,右子树深度)+1,采用递归实现。测试用例 1.功能测试(左斜树、右斜树、普通树)   2.边界值测试(一个结点)   3.特殊测试(null)代码...

2019-04-30 16:27:47 93

空空如也

空空如也

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

TA关注的人

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