- 博客(50)
- 资源 (28)
- 收藏
- 关注
原创 设计模式之装饰器
Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样。因此,装饰器模式具有如下的特征: 它必须具有一个装饰的对象。 它必须拥有与被装饰对象相同的接口。 它可以给被装饰对象添加额外的功能。 用一句话总结就是:保持接口,增强性能。 装饰器通过包装一个装饰对象来扩展其功能,而又不改变其接口,这实际上是基于对象的适配器模式的一种变种。它与对象的适配
2016-07-30 18:17:05 255
原创 47 大结局 不用加减乘除做加法
描述: 实现代码: package question47; public class AddTwoNumbers { static int Add(int num1,int num2){ int sum,carry; do { sum=num1^num2; carry=(num1&num
2016-07-20 10:32:32 514
原创 46 求 1+2+....n
描述: 实现代码: package question46; public class Accumulate { /* * 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 * 解题思路: 1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum
2016-07-20 10:26:40 291
原创 45 圆圈中最后剩下的数字
描述: 解法一: 利用数组来模拟链表 package question45; import java.util.Scanner; /** *使用数组实现约瑟夫环问题 *由m个人围成一个首尾相连的圈报数。 *从第一个人开始,从1开始报数,报到n的人出圈, *剩下的人继续从1开始报数,直到所有的人都出圈为止。 *对于给定的m和n,求出所有人的出圈顺序. */ publ
2016-07-20 10:24:30 1072
原创 44 扑克牌的顺子
描述: 思路: 先统计鬼的数量,排序,然后判断其他数字的最大与最小的值是不是 实现代码: package question44; import java.util.Arrays; public class ContinousCard { public static boolean isContinuous(int [] numbers) { if (numbers==n
2016-07-20 10:02:42 364
原创 43 n 个筛子 的点数
描述: 实现代码: package question43; public class DicsProbability { /* * 把n个骰子仍在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能出现的概率 */ public static void printProbability(int numbe
2016-07-20 09:58:31 350
原创 42 左旋转字符串
描述: 实现代码: package question42; public class LoopMove { public static void main(String[] args) { // TODO Auto-generated method stub String str="abcdefg"; char a
2016-07-20 09:53:15 335
原创 42 翻转单词顺序
描述 : 实现代码: package question42; public class ReverseWordsInSentence { public static String ReverseSentence(String str) { if(str == null){ return null;} if(str.trim().equal
2016-07-20 09:39:47 306
原创 41 和为 s 的连续正数序列
描述: 实现代码: package question41; public class ContinuesSquenceWithSum { static void FindContinuousSequence(int sum){ if (sum<2) { return; } int small=1; int big=2; int mid=(1+sum)
2016-07-20 09:35:23 253
原创 41 和为 s 的两个数字
描述: 解法一: package question41; import java.util.ArrayList; public class TwoNumbersWithSum { public static ArrayList FindNumbersWithSum(int [] array,int sum) { ArrayList list=new ArrayLi
2016-07-20 09:32:06 270
原创 约瑟夫环问题
描述: 约瑟夫环算法的描述是: n 个人 围成一圈,每个人都有一个互不相同的密码,改密码是一个整数值,选择一个人作为起点,然后顺时针从 1 到 k (k 为起点人手中的密码)。数到 k 的人退出圈子,然后下一个人开始继续从 1 到 j (刚退出圈子的人的密码),数到 j 的人退出圈子。重复上面的过程,直到只剩下最后一个人。 思路,建立循环单链表就可以解决问题了 实现代码: pac
2016-07-19 23:05:33 444
原创 40 数组中只出现一次的数字
描述: 实现代码: package question40; public class NumbersAppearOnce { public static void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) { int xor=0; for (int i : array) { xor=xor
2016-07-19 17:57:17 248
原创 39 二叉树的深度和宽度以及判断是否是平衡二叉树
描述: 实现代码: package question39; import java.util.Scanner; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } publi
2016-07-19 11:37:13 339
原创 38 数字在排序数组中出现的次数
描述: 实现代码: package question38; public class NumberOfK { static int GetNumberOfK(int data[],int length,int k){ int number=0; if (data.length!=0&&data!=null) { int first=GetFirstK(data,
2016-07-19 11:09:48 260
原创 37 两个链表的第一个公共结点
描述: 实现代码: package question37; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class FirstCommonNodesInLists { publ
2016-07-19 09:21:28 257
原创 36 数组中的逆序对
描述: 实现代码: package question36; public class InversePairs { static int count=0; public static int inversePairs(int [] array) { int res=mergeSort(array,0,array.length-1); return res;
2016-07-19 08:41:41 234
原创 35 第一个只出现一次的字符
描述: 实现代码 package question35; public class FirstNotRepatingChar { public static void main(String[] args) { // TODO Auto-generated method stub String str="google"; int index= firstNo
2016-07-19 00:00:44 203
原创 34 丑数
描述: 实现代码: package question34; public class UglyNumber { public static void main(String[] args) { // TODO Auto-generated method stub long t1=System.nanoTime(); int res1=GetUglyNumber(1
2016-07-18 23:23:04 214
原创 33 把数组排成最小数
描述: 实现代码: import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; public class Solution { public static void main(String[] args) { i
2016-07-18 22:15:10 219
原创 31 连续子数组的最大和
描述: 实现代码: package question31; public class GreatestSumOfSubarrays { public static void main(String[] args) { // TODO Auto-generated method stub int arr[]={1,-2,3,10,-4,7,2,-5};
2016-07-18 20:43:22 262
原创 30 最小的K个数
描述: 红黑树什么的俺也不懂,干脆搞个大根堆来玩玩。。。。。。。。 实现代码: import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.sound.sampled.LineListener; pu
2016-07-18 20:02:47 230
原创 29 数组中出现数字超过一半的数字
描述: 实现代码: package question29; public class MoreThanHalfNumber { static boolean inputInvalid=false; public static void main(String[] args) { // TODO Auto-generated method stub int
2016-07-18 17:23:19 219
原创 28附加题 八皇后问题
剑指offer上解决八皇后问题,没有用传统的递归或非递归回溯法,而是用了很巧妙的全排列法。 先说下八皇后问题:在8 X 8的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后不得处于同一行,同一列或者同意对角线上,求出所有符合条件的摆法。 全排列解决八皇后问题的思路如下: 由于8个皇后不能处在同一行,那么肯定每个皇后占据一行,这样可以定义一个数组A[8],数组中
2016-07-18 15:55:27 500
原创 28 字符串的排列
描述: 实现代码: package question28; import java.util.ArrayList; import java.util.List; public class StringPermutation { static ArrayList list=new ArrayList(); public static void main(String[] arg
2016-07-18 14:44:17 204
原创 27 二叉搜索树与双向链表
描述: 实现代码: package question27; import java.util.ArrayList; import java.util.Scanner; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {
2016-07-18 00:51:41 186
原创 26 复杂链表的复制
描述: 实现代码: package question26; import java.util.Scanner; class ComplexListNode { int val; ComplexListNode next = null; ComplexListNode random = null; ComplexListNode(int va
2016-07-17 16:10:56 190
原创 25 二叉树中和为某一值的路径
描述: 代码: package question25; import java.util.ArrayList; import java.util.LinkedList; import java.util.Scanner; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; pu
2016-07-17 11:25:02 245
原创 24 二叉搜索树的后序遍历序列
描述: 实现代码: package question24; public class SquenceOfBST { public static boolean VerifySquenceOfBST(int [] sequence) { if (sequence.length==0||sequence==null) { return false; } retur
2016-07-16 21:42:33 182
原创 23 从上往下打印二叉树
描述: 实现代码: package question23; import java.util.ArrayList; import java.util.Deque; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class TreeNode { int val = 0;
2016-07-16 20:33:42 252
原创 22 栈的压入,弹出序列
描述: 实现代码: package question22; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Stack; public class StackPushPopOrder { static Stack stack=new Sta
2016-07-16 20:12:36 244
原创 21 包含 min 函数的栈
描述: 实现代码: package question21; import java.awt.DisplayMode; import java.util.Stack; public class MinInStack { static Stack data=new Stack(); // 数据栈 static Stack min=new Stac
2016-07-16 16:59:15 176
原创 20 顺时针打印矩阵
描述: 实现代码: package question20; import java.util.ArrayList; public class PrintMatrix { static int [][]matrix={ {1, 2, 3, 4}, {5, 6, 7, 8}, {9,10,11, 12}, {13,14,15,16} }; pu
2016-07-16 16:00:48 206
原创 19 二叉树的镜像
描述: 实现代码: package question19; import java.util.Scanner; class TreeNode{ int val; TreeNode left=null; TreeNode right=null; public TreeNode(int val) { this.val=val; } } public class Mirro
2016-07-16 14:46:39 179
原创 18 树的子结构
描述: 实现代码: package question18; import java.util.Scanner; class TreeNode{ int val; TreeNode left=null; TreeNode right=null; public TreeNode(int val) { this.val=val; } } public class Sub
2016-07-16 12:19:59 186
原创 java 递归创建二叉树
代码 import java.util.Scanner; class TreeNode{ int val; TreeNode left=null; TreeNode right=null; public TreeNode(int val) { this.val=val; } } public class CreateBinaryTree { public static
2016-07-16 12:04:06 645
原创 17 合并两个排序的链表
描述: 实现代码: package question17; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.Scanner; class Node{ int val; No
2016-07-16 09:39:35 177
原创 16 反转链表
描述: 实现代码: import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } publi
2016-07-16 00:05:12 198
原创 15 链表中倒数第K个节点
描述: 实现代码: import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }
2016-07-15 21:54:31 173
原创 14调整数组顺序使奇数位于偶数前面
描述: 实现代码: import java.util.ArrayList; public class ReorderArray { public static void main(String[] args) { // TODO Auto-generated method stub int arr[]={1,2,3,4,5,6,7}; // reOrder
2016-07-15 17:19:40 202
原创 13 在O(1)时间内删除链表节点
描述: 实现代码: import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.Scanner; class Node{ int val; Node nex
2016-07-15 16:31:21 347
spring整合redis小demo
2018-04-09
dubbo/zookeeper
2018-03-13
架构师特刊:深入浅出Netty.pdf
2017-12-24
JSP+Servlet+Tomcat应用开发从零开始学修正版
2016-06-02
带括号的四则运算表达式js实现
2016-04-29
jsp ajax 文件上传(包含图片)
2015-10-29
JSP+Servlet+Tomcat应用开发从零开始学
2015-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人