面试题
默默前行的蜗牛
Data Mining ML
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[递归和循环]面试题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 · 311 阅读 · 0 评论 -
[查找]面试题4
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 分析思路:因为输入是一个非递减序列的旋转,因此找到第一个逆序的元素就是最小值 package cto; /** * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输原创 2016-01-15 15:35:19 · 390 阅读 · 0 评论 -
[栈和对列]面试题3
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型 分析思路: 其中一个栈是用来存储元素 另一个栈是用来取出元素 package cto; import java.util.Stack; /** * 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 * 对列:先进先出 * @author ywf * */ pub原创 2016-01-15 15:24:23 · 323 阅读 · 0 评论 -
[二叉树]面试题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 · 339 阅读 · 0 评论 -
[数组]面试题1
面试题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 分析思路:因为每一行从左到右是递增,从上到下是递减的,从左下角元素开始判断,如果大于指定的元素,则向上,如果小于,则向右 代码 public class Test { public static boolea原创 2016-01-14 16:02:13 · 400 阅读 · 0 评论 -
[面试题11]把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 /** * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 *原创 2016-01-28 15:49:11 · 275 阅读 · 0 评论 -
[面试题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 · 357 阅读 · 0 评论 -
[数组]面试题9 最大连续子串
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住? 这个题就是编程珠玑中原创 2016-01-28 10:16:40 · 465 阅读 · 0 评论 -
[链表]面试题9
输入一个链表,反转链表后,输出链表的所有元素。 分析思路: 该题简单的思路是:在遍历取下一个节点的时候,存储已经遍历的节点,并反转后继关系,取到最后一个节点的时候,将之前存储的作为最后一个节点的后继 ListNode currentNode = head; ListNode preNode = null; ListNode newHead = null; while(curren原创 2016-01-22 11:03:53 · 275 阅读 · 0 评论 -
[递归和循环]面试题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 · 338 阅读 · 0 评论 -
[递归和循环]面试题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 · 290 阅读 · 0 评论 -
[递归和循环]面试题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 · 296 阅读 · 0 评论 -
[面试题12]第N个丑数
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 看到这个题时,想到了早之前写过的如何判断一个数是否是质数,推广到如何判断一个数是不是丑数 因而根据质数的思路来写丑数 /**判断一个数是否为丑数 * @param n * @return原创 2016-02-03 11:18:17 · 1155 阅读 · 0 评论
分享