- 博客(80)
- 资源 (1)
- 收藏
- 关注
转载 linux命令grep结果高亮显示设置
grep高亮显示:grep =’grep –color=auto’这样写只是临时生效,断开重新连接后就不行了。如果想永久生效,可以写进全局变量文件中:/etc/profile在文件的结尾添加:alias grep='grep --color=auto'[root@rescue ~]# source /etc/profile这样就可以了。PS:设置后高亮不明显请调整你的xshel...
2018-12-20 17:25:14 4655
原创 复杂链表的复制——剑指offer
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)/*public class RandomListNode { int label; RandomListNode next = null; RandomL
2016-09-26 20:32:30 470
原创 二叉搜索树转换成双向链表——剑指offer
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。public class TreeToList { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; p
2016-09-23 21:28:06 376
原创 把字符串转换成整数——剑指offer
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 public class StringToInt { private boolean gInvlid=false;//全局变量判断是非法输入返回0还是输入0返回的0 public int StrToInt(String str) { gInvlid=fal
2016-09-23 19:32:56 427
原创 java实现有序数组的折半查找
public class BinarySearch { public int search(int[] arr,int data){ if(arr==null || arr.length==0) return -1; int low=0; int high=arr.length-1; int mid=0; while(low <=high){ mid =(low+
2016-09-22 10:39:46 769
原创 判断一个数组是不是二叉搜索树的后序遍历序列——剑指offer
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。public class Verify { public boolean VerifySquenceOfBST(int[] sequence) { return VerifySquenceOfBST2(sequence, 0, se
2016-09-21 22:27:03 755
原创 Java实现二叉树的创建、删除、遍历
public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } /** * 创建二叉树 * @param root */ public void creat
2016-09-21 17:47:09 689
原创 二叉树的镜像——剑指offfer
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7
2016-09-20 22:10:12 329
原创 树的子结构——剑指offfer
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.
2016-09-20 21:57:56 280
原创 合并两个排序的链表——剑指offer
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solu
2016-09-20 21:32:25 248
原创 幸运数字
数字4和7是幸运数字,而其他的都不是幸运数字。一个整数是幸运数字,当且仅当它的十进制表示只包含幸运数字。现在让你给出第K大的幸运数字。 Input第一行一个整数K(1Output第K大的幸运数字。用二位数组a[][]记录a[0][2^1]=4、7a[1][2^2]=44,47,74,77a[2][2^3]=444,
2016-09-05 22:51:16 2214
原创 调整数组顺序使奇数位于偶数前面——剑指offer
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。保持顺序不变可以用插入排序的思想,遇到奇数时就把此奇数前面的偶数后移,奇数插入移动完成后留下的空位public class Main13 { public void reOrderArray(int
2016-09-04 22:29:35 558
原创 数值的整数次方——剑指offer
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。注意:考虑全面,指数是负数的情况,0的0次方等public class Main { private boolean invalidInput=false;//全局变量标记是不是0的0次方这种不合法的情况 public double Power(do
2016-09-04 20:23:12 350
原创 二进制中1的个数——剑指offer
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。public class Main12 { /** * 该方法没有考虑到负数的情况,如果是负数就会死循环 * @param n * @return */ public static int NumberOf1(int n) { int sum = 0; while (n != 0)
2016-09-04 19:38:47 287
原创 斐波那契数列——剑指offer
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n注意:用递归虽然简单,但是由于有很多重复的计算,所以效率低,所以我们用循环来解决public class Main11 { public int Fibonacci(int n) { if (n == 0) return 0; if (1 == n) return 1; int
2016-09-04 18:51:26 281
原创 旋转数组的最小数字——剑指offer
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。注意:10111和11101这种特殊情况只能顺序查找public class Main10
2016-09-03 22:23:42 264
原创 用两个栈实现队列——剑指offer
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。import java.util.Stack;public class Main9 { Stack stack1 = new Stack(); Stack stack2 = new Stack(); public void push(int node) { stack1.pu
2016-09-03 21:54:10 315
原创 重建二叉树——剑指offer
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。这种解法要复制数组,效率低!!!看后面别人提供的更好思路public class Main8 { public stati
2016-09-03 21:43:00 354
原创 从尾到头打印链表——剑指offer
题目描述输入一个链表,从尾到头打印链表每个节点的值。 public class Main7 {public static ArrayList printListFromTailToHead(ListNode listNode) { ArrayList list=new ArrayList(); if(listNode == null)//注意代码的鲁棒性 return l
2016-09-01 22:09:53 298
原创 替换空格——剑指offer
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。不用replace函数package com;public class Main6 { public static String replaceSpace(StringBuffer str) {
2016-09-01 21:26:23 274
原创 二维数组中的查找——剑指Offer
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Main5 { public static boolean Find(int[][] array, int target) { if (array == null ||array
2016-09-01 21:04:01 293
原创 对链表进行排序(归并排序)
归并排序(算法交换链表节点,时间复杂度O(nlogn),不考虑递归栈空间的话空间复杂度是O(1)) 本文地址首先用快慢指针的方法找到链表中间节点,然后递归的对两个子链表排序,把两个排好序的子链表合并成一条有序的链表。归并排序应该算是链表排序最佳的选择了,保证了最好和最坏时间复杂度都是nlogn,而且它在数组排序中广受诟病的空间复杂度在链表排序中
2016-08-23 21:54:54 980
原创 SQL注入攻击
SQL注入攻击:攻击者把SQL命令插入到web表单的输入域或者页面请求的查询字符中,欺骗服务器执行恶意的SQL命令。常见防止SQL注入的方法:1、替换单引号:把所有单独出现的单引号转义成双引号2、限制账户的权限:不同用户账户执行查询、删除等操作不同3、检验查询返回记录的数量4、加强用户输入的验证,拒绝包含分号、单引号、注释号输入等5、JAVA操作数据库使用Prepare
2016-08-18 22:31:49 600
原创 JAVA适配器模式
package com.适配器模式;abstract class Player {//抽象球员类 protected String name; public Player(String name) { this.name=name; } public abstract void Attack(); public abstract void Defense();}packag
2016-08-17 21:18:31 330
原创 JAVA装饰模式
package com.装饰模式;public class Person { private String name; public Person(){} public Person(String name) { this.name=name; } public void show(){ System.out.println("person:"+name); }}
2016-08-16 22:24:19 283
原创 JAVA错误笔记
一、构造方法: 1:构造方法可以被重载,一个构造方法可以通过this关键字调用另一个构造方法,this语句必须位于构造方法的第一行; 2:构造方法不能被static、final、synchronized、abstract、native修饰,但可以被public、private、protected修饰; 3:构造方法不是类的成员方法; 4: 构造方法不能被继承。
2016-08-13 22:31:52 420
原创 JAVA三大框架:struts、Hibernate、Spring
1.MVC2.Struts 与MVC3.Hibernate3.1 Hibernate中ORM使用的继承关系的映射方法4.Spring4.1 依赖注入4.2 Spring的声明式事务AOP面向切面编程:把系统不同部
2016-08-04 22:14:32 528
原创 红黑树
红黑树排序二叉树虽然可以快速检索,但在最坏的情况下:如果插入的节点集本身就是有序的,要么是由小到大排列,要么是由大到小排列,那么最后得到的排序二叉树将变成链表:所有节点只有左节点(如果插入节点集本身是大到小排列);或所有节点只有右节点(如果插入节点集本身是小到大排列)。在这种情况下,排序二叉树就变成了普通链表,其检索效率就会很差。为了改变排序二叉树存在的不足,Rudolf Baye
2016-07-31 19:23:56 1905
原创 Session和Cookie的区别
注:整理来自点击打开链接二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化
2016-07-26 20:59:32 350
原创 SQL 中的左连接和右连接
1.SQL INNER JOIN 关键字与 JOIN 是相同的2.SQL LEFT JOIN 关键字:SELECT column_name(s)FROM table_name1LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_nameLEFT JOIN 关键字会从左表 (tabl
2016-07-25 22:22:44 306
原创 LoadRunner笔记
1.设置关联步骤:下面的菜单栏Correlation Results中选择一个关联后点击Correlate按钮进行关联,脚本里就会生成关联的函数。2.参数化如果用户在录制脚本过程中,用户和密码都是常量,当多个虚拟用户运行脚本时,都会提交相同的用户名和密码,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。参数化在脚本中用参数取代常量值
2016-07-25 22:13:36 400
原创 白盒测试:覆盖方式
语句覆盖(statement coverage):语句覆盖是指程序的每一行代码是否都被覆盖到;语句覆盖是最常用的一种代码覆盖率指标,也非常简单。但是对一些控制结构的代码而言,它不能真正表示是否完全覆盖到。决策覆盖(decision coverage):又叫分支覆盖,决策覆盖是指在控制结构的代码块,如if, while中的整个bool表达式是否在false和true条件下,各被执行一次。决策覆盖
2016-07-25 10:42:47 2216
原创 Android四大组件
Android四大组件:activity,service,broadcast receiver,content provider一、Activity详解Activty的生命周期的也就是它所在进程的生命周期。 一个Activity的启动顺序:onCreate()——>onStart()——>onResume()当另一个Activity启动时:
2016-07-24 21:27:37 643
原创 JAVA实现观察者模式
package com.观察者模式;public interface Observer { public void update(Product p); public void unRegist(Product p);}package com.观察者模式;public class MailObserver implements Observer{ @Overrid
2016-07-24 21:07:05 357
原创 JAVA实现单例模式
public class Singleton { private Singleton(){} private static Singleton instance=null; public static synchronized Singleton getInstance(){ if(instance == null) instance=new Singleton(); retu
2016-07-24 20:42:49 263
原创 Mysql数据库原理
Mysql是一个单进程的服务,对于每一个请求都是用线程来相应的。这就需要一个连接器来处理新用户的请求、相应,以及销毁。mysql的执行流程: 1.客户端请求,服务端(连接器)开辟线程相应用户 2.用户发起SQL语句查询数据库 3.查询缓存:记录用户的SQL查询语句。如果再次查询同样内容。就返回缓存 4.如果缓存没有进入分析器。(分析器也可能借鉴缓存)
2016-07-24 20:26:16 5074
转载 fitnesse使用
一、安装1、去官网下个jar包,www.fitnesse.org,我下载的是fitnesse-standalone.jar,将该jar包放到一个空白文件夹当中,打开命令窗口,执行命令java -jar fitnesse-standalone.jar或者java -jar fitnesse-standalone.jar -p 8001,后者是指定端口的,防止默认的80端口被占用后没法打开fitn
2016-07-21 15:42:59 687
原创 java中类名.class, class.forName(), getClass()区别
1.类名.class说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串") (注:类名字符串是包名+类名) 说明:装入类,并做类的静态初始化,返回Class的对象3.实例对象.getClass() 说明:对类进行静态初始化、非静态初始化;返回引用o运行
2016-07-20 20:37:38 483
原创 JAVA和C++数组初始化
JAVA一维数组TestD.java(动态):public class TestD { public static void main(String args[]) { int a[] ; a = new int[3] ; a[0] = 0 ; a[1] = 1 ;
2016-07-07 10:25:26 392
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人