自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lizhao007

一杯Java 一杯咖啡

  • 博客(49)
  • 收藏
  • 关注

原创 Linux-Shell之比较和测试

程序中的流程控制是由比较和测试语句来处理的。在Bash中具备多种和UNIX系统特性相兼容的执行测试方法。在Shell中我们可以用if,if else以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项。if测试if条件:if condition;thencommands;fi在这里会以fi结尾用于提示if的结束。else if和elseif condition;thencommands

2016-04-30 15:32:47 331

原创 二叉树节点间的最大距离

题目:从二叉树的节点A出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点B时,路径上的节点数叫作A 到B的距离。 比如,上图所示的二叉树,节点4和节点2的距离2,节点5和节点6的距离为5。给定一颗二叉树的头结点head求整棵树上节点间的最大距离。要求:如果二叉树的节点为N,时间复杂度要求为O(N). 思路: 二叉树中最大距离只可能来自以下三种情况: 1.h的左子树上的最大距离

2016-04-30 10:33:03 2247

转载 JAVA中Comparable和Comparator的区别

Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包Java.util下,而Comparable位于包 ja

2016-04-29 16:53:04 285

原创 LINUX-SHELL之数字运算

在Bash shell环境中,可以利用let,(())和[]执行基本的算数操作。而在进行高级操作时,expr和bc这两个工具也会非常有用。数字的加减我们在shell中普通的变量赋值的时候会被存储为字符串。然而,我们可以用一些方法让他们可以像数字一样处理。#! /bin/bashno1=4no2=5我们定义了两个变量,let命令可以直接执行基本的算数操作。当使用let时, 变量名之前不需要再添加

2016-04-28 21:28:00 7685

原创 Linux-SHELL中sh和bash的区别

什么是SHELL?shell的中文意思就是贝壳,其实比较类似于我们内核的壳。我们通过hsell和用户通信SHELL简而言之就是只要能够操作应用程序的接口都能够称为SHELL。狭义的shell指的是命令行方面的软件,广义的SHELL则包括图形界面。SHELL的版本在鸟哥的私房菜的一书中,介绍了UNIX的版本以及众多的SHELL版本。 早在UNIX年代,发展者众多,所以由于shell依据发展者的不同就

2016-04-28 20:35:09 32635 4

原创 Linux-Shell脚本中单引号和双引号区别

最近开始学习Linux的Shell脚本操作,遇到的比较多的就是单引号和双引号的区别。在SHELL脚本中的单引号和双引号都是字符串的界定符,而不是字符的界定符。单引号单引号用于保持和引号内所有字符的字面值,即使引号内的\和空格都不能避免。只要被单引号扩起来了以后,不管是什么都会失去原来的意义,只做为普通字符解释 例如下面的shell脚本#! /bin/basha=helloecho '${a}'

2016-04-28 20:12:39 905

原创 linux之echo详解

在Linux中我们使用echo和printf(和C一样)完成我们的终端打印。 下面我会详细解读echo 首先我们需要在我们的linux 命令窗口下输入 man echo 可以知道我们的echo用于展现一行文字。 具体的参数有 -n:不换行输出 -e:可接受转移序列

2016-04-28 11:16:59 890

原创 利用CXF开发SOAP插件

前面的几个系列已经说明了如何利用CXF创建SOAP应用,接下来我们需要把CXF创建SOAP的细节进行一些封装,只需要简单的利用注解就可以完成。那接下来就开始:注解既然我们提到只需要简单的利用注解,那么我们就需要创建一个注解@Soappackage org.iframework.plugin.soap;import java.lang.annotation.ElementType;import ja

2016-04-27 18:43:03 668

原创 Mysql执行查询的原理

MySQL执行路径 从图中可以看出基本步骤为: 1.客户端发送一条查询给服务器。 2.服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 3。服务器端进行SQL解析,预处理,再由优化器生成对应的执行计划 4。MySql根据优化器生成的执行计划,调用存储引擎的API执行查询。 5。返回结果给客户端。MySQL客户端/服务器通信协议MySQL客户端和服务器

2016-04-26 22:32:52 9619 1

原创 MySql查询方式优化-重新构建查询

为什么查询会慢如果我们发现我们的查询比较慢我们可以通过以下两个步骤分析: 1.判断我们是否检索了大量的数据,有可能是行,也有可能是列。 2.确认Mysql服务器层是否在分析大量超过需要的数据行。是否向数据库请求了不需要的数据1.查询不需要的记录 在MySql中我们是先返回全部结果再进行计算 所以我们只查我们需要的。 2.取出全部列 我们在项目中很多人都会直接select *。取出全部列,

2016-04-26 21:10:04 425

原创 使用cxf开发REST服务

什么是RESTREST是继SOAP以后,另一种广泛使用的Web服务。与SOAP不同,REST没有WSDL概念,也没有叫“信封”的东西,因为REST主张用一种简单粗暴的方式来表达数据,传递的数据格式可以使JSON格式也可以是XML格式,完全由用户决定。REST全称是表达性状态转移,源于REST之父的一篇论文,论文中提出REST6个特点,分别是:客户端-服务器的,无状态的,可缓存的,统一接口,分层系统和

2016-04-26 08:42:23 1776

原创 动态规划-求最长递增子序列

题目:给出一段数组,比如[1,3,5,2,4,6,7,8],得到的最长为1,2,4,6,7,8。 思路:利用dp数组来解决这个问题,dp[i]表示0…i之间最长的子序列的长度。 dp的求法如果a[i]>a[j],dp[i]=Math.max(dp[i],dp[j]+1);首先求出dp的代码如下:private static int[] getdp(int[] arr){ int[

2016-04-25 22:07:53 502

原创 动态规划-数组中求最长等差数列的长度

题目:给定一个数组求出数组最长等差数列的长度。 举例:3,8,4,5,6,2 输出:5。 思路:利用区间dp来做,dp[i][diff]的意思是 intAr[0]到intAr[i],等差为diff的等差长度。在求dp长度的时候利用一个ans变量保存最大即可。 dp的求法: 有diff=intAr[i]-intAr[j](j<i) dp[i][diff]=dp[j][diff]。 细节处

2016-04-24 19:28:33 4533

原创 CXF系列之和spring的结合

第一步配置MAVEN依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://

2016-04-24 15:23:47 733 1

原创 CXF系列之用CXF利用内置jetty发布ws

MAVEN导入这里要导入一个cxf的j包和cxf中内置jetty服务器的包<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.4</version> </dependency>

2016-04-24 12:10:14 4889

原创 CXF入门RI实现

什么是WSDLWSDL全称是Web Service Description Language(Web服务描述语言),用于描述Web Service的具体内容。也是用来描述如何使用SOAP来调用Web服务。 当成功发布了一个WS后,就能在浏览器中通过一个地址来查看基于WSDL文档,他是一个基于XML的文档。我们在访问一个webservice地址的时候带上wsdl参数。 http://localho

2016-04-24 11:27:33 421

原创 WEB服务框架--CXF简介

什么是CXF、Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项

2016-04-22 11:00:37 650

原创 各种排序的比较和使用场景分析

冒泡排序          冒泡排序重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说排序完成。规模比较小的时候应用冒泡排序,主要应用于教学。。。选择排序--只会移动N次         选择排序的主要思想:首先找到数组中最小的那个元素,其次,将它和第一个元素交换。接下来找第二小和第二个交换。运

2016-04-20 15:48:57 14386 5

原创 华为-删数-约瑟夫环问题-不利用额外空间

题目:有一个数组a[N]顺序存放0-N,要求没隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。 输入描述:每组数据为一行一个整数n(小于等于1000),为数组成员数,如100,则对a[999]进行计

2016-04-17 13:31:40 908

原创 虚拟机性能监控与故障处理

命令工具java开发人员肯定都知道JDK的bin目录中有”java.exe”,”javac.exe”这两个命令行工具,但并非所有程序员都了解过jdk的bin目录之中其他命令行程序的作用。 下面先概括介绍下作用: jps:显示指定系统内所有的HotSpot虚拟机进程。 jstat:用于收集HotSpot虚拟机各方面的运行数据。 jinfo:显示虚拟机配置信息。 jmap:生成虚拟机的内存转储

2016-04-17 10:20:59 566

原创 动态规划-百度-蘑菇阵

现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?输入描述:第一行N,M,K(2 ≤ N,M ≤ 2

2016-04-15 11:42:37 504

转载 海量数据面试题整理(一)

1、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。 第一步:s 遍历文件a,对每个url求取hash(url)%1000,然后根据所取得的值将url分别存储到1000个小文件(记为a0,a1

2016-04-14 21:42:27 368

原创 钓鱼比赛-百度笔试

题目:ss请cc来家里钓鱼,鱼塘可划分为n*m的格子,每个格子每分钟有不同的概率钓上鱼,cc一直在坐标(x,y)的格子钓鱼,而ss每分钟随机钓一个格子。问t分钟后他们谁至少钓到一条鱼的概率大?为多少? 输入描述:第一行五个整数n,m,x,y,t(1≤n,m,t≤1000,1≤x≤n,1≤y≤m); 接下来为一个n*m的矩阵,每行m个一位小数,共n行,第i行第j个数代表坐标为(i,j)的格子钓到鱼

2016-04-14 15:12:10 1325

原创 贪心-百度笔试-裁减网格纸

题目:度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。 输入描述: 第一行一个数n(2≤n≤1000)表示点数,接下来每行一对整数xi,yi(-1e9<=xi,yi<=1e9)表

2016-04-14 14:23:03 657

原创 同步和异步,阻塞和非阻塞

在前不久的蘑菇街的面试中问了我Log4j的异步调用的优点,我没有答得很全。这里详细分析一下。同步和异步1.什么是同步?同步:指发送一个请求,需要等待返回。然后才能够发送下一个请求。在这个定义之下,我们的绝大多数的代码都是同步执行,比如函数调用时必须等待函数流程执行完毕然后返回给调用者。2.什么是异步?异步:简单点不是同步的都是异步。官方定义是发出一个异步过程调用后,调用者不会立刻得到结果。实际处理这

2016-04-13 16:03:32 306

原创 动态规划-百度-罪犯转移

C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式? 输入描述:第一行数据三个整数:n,t,c(1≤n≤2e5,0≤t≤1e9,1≤c≤n),第二行按入狱时间给出每个犯人的罪行值ai(0≤ai≤1e9)。输入例子: 3 100 2

2016-04-13 12:54:35 883

原创 平均年龄-美团笔试

已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(结果向上取整)。 输入:输入W Y x N 输出:平均年龄。思路:这道题比较简单,利用数学思维做,时间复杂度为O(n),空间复杂度为O(1),

2016-04-13 11:14:06 1085

原创 动态规划-美团笔试-字符串计数-恶心的dp

题目:求字典序在s1和s2之间的,长度在len1到len2的字符串的个数,结果mod 1000007。 输入描述:每组数据包涵s1(长度小于100),s2(长度小于100),len1(小于100000),len2(大于len1,小于100000)。 输入例子: ab ce 1 2 输出:56思路:看见这个标签是动态规划我第一反应就是找dp表关系,但是找了半天嗯是没有进展,问了一个大神大神给我

2016-04-12 12:55:20 1409

转载 IPV4和IPV6的区别

在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少朋友都觉得比较奇怪,询问编辑IPv4与IPv6的区别,下面编辑就为大家权威的介绍下IPv4与IPv6有什么区别。目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心

2016-04-11 23:01:56 15281

转载 Select执行顺序

1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、select 的字段;8、使用order by对结果集进行排序。 SQL语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理

2016-04-11 16:19:24 393

原创 HTTP状态码

HTTP状态码总共分为5中: 1XX 2XX 3XX 4XX 5XX1XX是 信息性100 继续 收到了请求的起始部分,客户端应该继续请求 101 交换协议 服务器正根据客户端的指示将协议切换成Update Header列出的协议2xx成功200 OK 服务器成功处理了请求 201 Created 资源创建完毕 202 Accepted 请求接受,但还未处理 203 非认

2016-04-11 14:51:54 374

原创 动态规划-美团笔试-最大直方图

题目: 有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如, * 对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。 给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。 测试样例:[2,7,9,4,1],5 返回:14思路:根据动态规划的思路

2016-04-11 13:54:42 2017 1

原创 动态规划-美团笔试题-拜访

题目:现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。 给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。 例:

2016-04-10 15:25:52 1059

原创 最长公共子串-不建立dp数组(空间复杂度为O(1))

题目:给定两个字符串str1,str2,返回两个子字符串的最长公共子串。例: 输入:str1=”1AB2345CD” str2=”12345EF”,返回”2345”。 这里我不仅不使用dp,并且还要返回路径。思路:如果我们使用经典动态规划的方法可以做到时间复杂度为O(MXN),额外空间复杂度为O(MXN),经过优化之后的实现可以把额外空间复杂度从O(MXN)降至O(1)。 解法一:动态规划表d

2016-04-09 16:13:19 773 2

原创 HTTP请求报文和响应报文

请求报文http请求报文可以分成三个部分: 1.请求行 2.请求头 3.请求体请求行请求行分为三部分: 1。请求方法:这里的请求方法指的是http请求方法(get,post,delete,put)等 2。请求URL: 这里是我们需要访问的URL地址 3。HTTP协议及版本:我们这里使用的是HTTP 1.1协议。1.1和1.0的区别也是常考的,区别最主要是1.0的长连接不是默认开启。请求头

2016-04-08 14:14:02 1038

转载 16年腾讯春招--求最长回文子序列长度

题目:求最长回文子序列长度,子序列可不连续。 给一个字符串,找出它的最长的回文子序列的长度。例如,如果给定的序列是“BBABCBCAB“,则输出应该是7,“BABCBAB”是在它的最长回文子序列。 “BBBBB”和“BBCBB”也都是该字符串的回文子序列,但不是最长的。思路:动态规划。 dp[i][j]表示字符串从i到j区间的最长回文子序列长度。 如果str[i]与str[j]相同,则d

2016-04-08 10:39:54 387

原创 去哪儿编程题-寻找Coder

题目: 请设计一个高效算法,再给定的字符串数组中,找到包含”Coder”的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照”Coder”出现的次数递减排列,若两个串中”Coder”出现的次数相同,则保持他们在原数组中的位置关系。 给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在包含coder的

2016-04-08 10:29:54 854

原创 去哪儿-首个重复字符

题目: 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。 测试样例: “qywyer23tdd”,11 返回:y 思路:我们这里使用hash表的方法来做这个问题,这里由于是字符可以直接使用数组代替我们的Hash表,具体做法遍历一次字符串数组,在j

2016-04-07 16:52:49 835

原创 腾讯笔试-找矩阵路径最大值

题目:给定一个矩阵,矩阵每个点都有自己的值,现在求从左上点到右下点的最大值。 使用dp动态规划,找出每个点的最大值即可:class mydp{ public int value; public String path=""; public mydp(int value,String path) { this.value = value; thi

2016-04-06 13:46:00 1476

原创 小米笔试-股票最大收益(动态规划)

题目: 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2

2016-04-06 12:45:23 5002

空空如也

空空如也

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

TA关注的人

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