- 博客(240)
- 资源 (28)
- 收藏
- 关注
原创 字符串的大小写全排列
比如输入abc,a可以变成A,输出他们的全排列 8种,详见测试结果import java.util.ArrayList;import java.util.Scanner;public class Main { static ArrayList> lists=new ArrayList<>(); public static void main(String[] args) {
2016-09-20 12:35:15 1769
原创 集合的子集
题目描述请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。测试样例: [123,456,789]返回:{[789,456,123],[789,456],[789,123],[789],[456 123],[456]
2016-09-19 22:21:53 406
原创 字符串的相似度
我们把两个字符串的相似度定义为:将一个字符串转换成另外一个字符串的代价(转换的方法可能不唯一),转换的代价越高则说明两个字符串的相似度越低。比如两个字符串:“SNOWY”和“SUNNY”,下面给出两种将“SNOWY”转换成“SUNNY”的方法:变换1: S - N O W Y S U N N - Y Cost = 3 (插入U、替换O、删除W)
2016-09-18 17:22:08 1230
原创 双栈排序
给定一组整数,利用两个栈来将它们排序思路:声明两个栈S1,S2 我们约定将排好序的结果放在S2里面0 当S1不为空:1.先取出S1的栈顶元素A,2.用S2的栈顶元素B跟A比较如果B>A则S2出栈并且推入S1直到S2中的栈顶元素小于A;3.把A放进S24 返回 0实现代码:import java.util.ArrayList;import java.util
2016-09-16 11:20:11 479
原创 二叉树的创建,递归和非递归遍历
递归的实现很简单,我就不介绍了;下面我就说说非递归遍历1. 先序非递归遍历 根据前序遍历访问的顺序,优先访问根结点,然后再分别访问左孩子和右孩子。即对于任一结点,其可看做是根结点,因此可以直接访问,访问完之后,若其左孩子不为空,按相同规则访问它的左子树;当访问其左子树时,再访问它的右子树。因此其处理过程如下: 对于任一结点P: 1)访问结点P,
2016-09-16 10:45:19 387
原创 376. Wiggle Subsequence
A sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be either pos
2016-09-14 12:16:59 305
原创 2017京东校招编程题 烽火台
描述:n 个 烽火台围成一个圈,任意两个烽火台只要中间的烽火台比他们两个都低就能看见彼此,当然相邻的肯定能看见对面,求能看见彼此的对数输入 5 // 烽火台的个数3 2 5 4 1 //烽火台的高地输出:7思路:观察任意两个烽火台是不是有比他们都低的,有则计数加一,注意要考虑两个方向,因为他们围成了圈圈
2016-09-10 11:35:34 8579
原创 2017 京东校招编程题 进制转换
描述,输入一个整数N,输出该数字从2到N-1进制的和的平均值。比如 N=5,二进制为 101三进制为 12四进制 为11则输出为 (1+0+1+1+2+1+1)/3=7/3思路,用栈来实现进制转换代码:import java.util.*;public class Main { public static void main(String args[]){
2016-09-10 11:24:31 521
原创 2017滴滴出行面试题 n 张桌子吃饭的最大利润
描述:有n张桌子,每张桌子都有固定容量,有m批客人来吃饭,每一批客人都有自己的消费金额,规定客人不可以拼桌子,求老板如何安排才能获得最大利润:样例输入:3 5 // 分别代表 n 和 m2 4 2 // 分别代表每张桌子的容量 // 下面的 m 行的第一个数字表示人数,第二个表示
2016-09-10 11:08:03 2542 2
原创 华为机试 迷宫最短路径
闯迷宫 描述:sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫。sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数。知道了最少步数就可以辅助控制比赛难度以及去掉一些没有路径到达终点的map。比赛规则是:从原点(0,0)开始走到终点(n-1,n-1),只能上下左右4个方向走,只能在给定的矩阵里走。
2016-09-10 00:24:41 1814
原创 击鼓传花
题目描述 学校联欢晚会的时候,为了使每一个同学都能参与进来,主持人常常会带着同学们玩击鼓传花的游戏。游戏规则是这样的:n个同学坐着围成一个圆圈,指定一个同学手里拿着一束花,主持人在旁边背对着大家开始击鼓,鼓声开始之后拿着花的同学开始传花,每个同学都可以把花传给自己左右的两个同学中的一个(左右任意),当主持人停止击鼓时,传花停止,此时,正拿着花没传出去的那个同学就要给大家表演一个节目。聪
2016-09-02 12:37:34 2729
原创 找零钱的方案数以及所需最少张数的钞票的方案
问题描述:我们知道人民币有1元,2元,5元,10元,20元,50元,100元这几种表示,现在给你一个整数 n 让你找零,求出有多少种方案。例如 n=4,则方案可为1+1+1+1,2+2, 1+1+2,总共3种。方案一 :笨方法 100a+50b+20c+10d+5e+2f+g=n,a,b,c,d,e,f,g分别为各种面值钞票的张数。通过穷举和限制条件可以求出方案
2016-09-02 09:26:52 7961
原创 把正整数 n 转化成最少个数字的平方
题目描述:给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。给出 n = 12, 返回 3 因为 12 = 4 + 4 + 4。给出 n = 13, 返回 2 因为 13 = 4 + 9。这个题目的思路是用动态规划,设 f(n) 为所求的最少个数。 那么 f(n)=min( f(i)+f(n-i)
2016-09-01 23:47:21 2078
转载 Java this 引用逃逸
this逃逸是指在构造函数返回之前其他线程就持有该对象的引用. 调用尚未构造完全的对象的方法可能引发令人疑惑的错误, 因此应该避免this逃逸的发生.this逃逸经常发生在构造函数中启动线程或注册监听器时, 如:Java 代码: public class ThisEscape { public ThisEscape() {
2016-08-17 16:48:10 1060
原创 java 代理和动态代理
第三种关系成为代理,举一个例子,你需要去某公司问问这个公司的相关业务,那么前台的漂亮妹妹就可以充当这个代理,她帮你询问然后告诉你。扯点正经的吧。。。。例如,太空船需要一个控制模块://: reusing/SpaceShipControls.javapackage reusing; /* Added by Eclipse.py */public class SpaceShi
2016-08-15 17:00:10 336
原创 Java 使用 jdbc 连接 mysql
首先要下载Connector/J地址:http://www.mysql.com/downloads/connector/j/这是MySQL官方提供的连接方式:解压后得到jar库文件,需要在工程中导入该库文件我是用的是Eclipse: JAVA连接MySQL稍微繁琐,所以先写一个类用来打开或关闭数据库:DBHelper.java
2016-08-09 13:20:11 6149
原创 Java四种线程池
介绍new Thread的弊端及Java四种线程池的使用,本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto-generated method stub
2016-08-06 16:44:10 349
原创 设计模式之装饰器
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 515
原创 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 292
原创 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
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关注的人