- 博客(13)
- 资源 (27)
- 问答 (2)
- 收藏
- 关注
原创 [面试题11]把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 /** * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 *
2016-01-28 15:49:11 239
转载 [面试题10]1-n中1的个数
参考博文:http://www.cnblogs.com/nailperry/p/4752987.html,主要就是从数字出发找规律。 一、1的数目 编程之美上给出的规律: 1. 如果第i位(自右至左,从1开始标号)上的数字为0,则第i位可能出现1的次数由更高位决定(若没有高位,视高位为0),等于更高位数字X当前位数的权重10i-1。 2. 如果第i位上的数字为1,则第i位上
2016-01-28 10:56:21 303
原创 [数组]面试题9 最大连续子串
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住? 这个题就是编程珠玑中
2016-01-28 10:16:40 421
原创 [链表]面试题9
输入一个链表,反转链表后,输出链表的所有元素。 分析思路: 该题简单的思路是:在遍历取下一个节点的时候,存储已经遍历的节点,并反转后继关系,取到最后一个节点的时候,将之前存储的作为最后一个节点的后继 ListNode currentNode = head; ListNode preNode = null; ListNode newHead = null; while(curren
2016-01-22 11:03:53 242
原创 [递归和循环]面试题8
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析思路: 因为小矩形可以横放和竖放,因此最小的单元应该是2*1,或者2*2 因此f(n)=f(n-1)+f(n-2) 转化为斐波那契数列 /** * 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个2*1的小矩形无重叠地覆盖一个2*n的
2016-01-18 14:21:01 290
原创 List的copy
在做项目的过程中,经常会遇到将一个List复制到另一个List中--- 思路是 创建两个List 然后将srcList中的元素一个个取出来赋给descList中 这里我们可以利用collections中的copy方法 但是需要注意: 直接用copy方法很容易会抛出 throw new IndexOutOfBoundsException("Source does not fit in
2016-01-16 09:22:16 388
原创 [递归和循环]面试题7
变态跳台阶:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析思路: 同一次跳1级,一次跳2级类似,先分析n=3,n=4时,发现n=4时=f(3)+f(2)+f(1)+1 /** * 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 * * @para
2016-01-15 16:56:16 252
原创 [递归和循环]面试题6
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析思路: 先分析台阶数n=1,n=2,n=3的情况, 递归思路:到达第n级台阶有两种方法,第一种是从n-2级跳到n,另一种是从n-1跳到n----符合递归 动态规划思路--类似斐波那契数列 public int JumpFloor(int target) { if (target <= 0)
2016-01-15 16:28:47 258
原创 [递归和循环]面试题5
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 分析思路 1:采用递归算法 优点:编程简单,思路清晰 缺点:复杂度高,特别是n比较大时,很容易内存溢出 2.采用动态规划思想 下面采用动态规划思想 public int Fibonacci(int n) { if(n<=0) return n; if(n<=2){ return
2016-01-15 16:13:47 270
原创 [查找]面试题4
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 分析思路:因为输入是一个非递减序列的旋转,因此找到第一个逆序的元素就是最小值 package cto; /** * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输
2016-01-15 15:35:19 349
原创 [栈和对列]面试题3
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型 分析思路: 其中一个栈是用来存储元素 另一个栈是用来取出元素 package cto; import java.util.Stack; /** * 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 * 对列:先进先出 * @author ywf * */ pub
2016-01-15 15:24:23 277
原创 [二叉树]面试题2
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 前序遍历:DLR 中序遍历:LDR 重建过程用递归算法比较简单 public static TreeNode reCons
2016-01-14 18:06:31 300
原创 [数组]面试题1
面试题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 分析思路:因为每一行从左到右是递增,从上到下是递减的,从左下角元素开始判断,如果大于指定的元素,则向上,如果小于,则向右 代码 public class Test { public static boolea
2016-01-14 16:02:13 335
手写识别数据集MNIST
2018-06-21
win7下注释掉checkReturnValue方法体后的jar文件
2018-05-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人