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