随笔分类 -  面试系列

面试常见问题
计算数组中的任意个数字的和为某一个值的组合
摘要:问题: 有1,3,2,4,5这几个数字,把这几个数相加结果等于6 结果可以是 1,3,2 2,4 1,5 实现: 阅读全文

posted @ 2016-11-19 11:01 醉清风JM 阅读(2598) 评论(0) 推荐(0)

IT公司100题-35- 求一个矩阵中最大的二维矩阵(元素和最大)
摘要:问题描述:求一个矩阵中最大的二维矩阵(元素和最大).如:1 234 56 7 8 9 101 2 3 4 5中最大的是:4 59 10分析:2*2子数组的最大和。遍历求和,时间复杂度为O(mn)。代码实现: 1 // 35.cc 2 #include 3 #include 4 using nam... 阅读全文

posted @ 2014-09-09 16:20 醉清风JM 阅读(341) 评论(0) 推荐(0)

编程之美 - 写一个函数,返回数组中所有元素被第一个元素除的结果
摘要:问题:写一个函数,返回数组中所有元素被第一个元素除的结果,包含第一个元素,也要自己除自己分析:主要注意两点:1,判断输入是否合法;2,判断除数是否为0;3,从后往前除(真猥琐)代码实现: 1 /* div_array.cc 2 * 2014/09/03 create 3 * 写一个函数,返回数组... 阅读全文

posted @ 2014-09-03 23:27 醉清风JM 阅读(610) 评论(0) 推荐(0)

IT公司100题-32-交换元素,使数组差最小
摘要:问题描述:有两个整数序列a, b,大小都为n, 序列元素的值任意整数,无序。要求:通过交换a, b 中的元素,使得sum(a)-sum(b),差最小。例如:var a=[80, 40, 60, 10, 20, 30];var b=[10, 20, 50, 40, 30, 20];分析:近似最优算法:... 阅读全文

posted @ 2014-09-01 13:33 醉清风JM 阅读(647) 评论(0) 推荐(0)

IT公司100题-28-整数的二进制表示中1的个数
摘要:问题描述:输入一个整数n,求n的二进制表示中,一共有多少个1。例如n=8,二进制表示为00001000,二进制表示中有1个1。分析:如果一个数n不为0,那么n-1的二进制表示,与n的二进制表示相比,n的二进制表示最右边的1变为0,而最右边的1所对应的0全部变为1。其余位不受影响。例如:n的二进制表示... 阅读全文

posted @ 2014-08-28 22:23 醉清风JM 阅读(236) 评论(0) 推荐(0)

IT公司100题-27-跳台阶问题
摘要:问题描述:一个台阶总共有n阶,一次可以跳1级或者2级。求总共有多少种跳法。分析:用f(n)表示n阶台阶总共有多少种跳法。n阶台阶,第一可以选择跳1阶或者2阶,则f(n) = f(n-1) + f(n-2)。问题转化为斐波那契数列问题。/ 1 n=1f(n)= 2n=2\f(n-1)+(f-2)n>2 阅读全文

posted @ 2014-08-28 21:52 醉清风JM 阅读(214) 评论(0) 推荐(0)

IT公司100题-tencent-打印所有高度为2的路径
摘要:问题描述:打印所有到叶子节点长度为2的路径 10 / \ 6 16 /\ / \ 4 8 14 18 / \ / \ \2 5 12 15 20 / 11打印:[10 6 8][6 4 2][6 4 5][16 14 15][16 18 20][14 12 11]分析:1, ... 阅读全文

posted @ 2014-08-28 21:49 醉清风JM 阅读(207) 评论(0) 推荐(0)

IT公司100题-26-左旋转字符串
摘要:问题描述:给定字符串和左旋的字符数,写程序实现字符串的左旋操作。例如对于字符串”12345678″, 左旋转4个字符后,变成”56781234″。要求时间复杂度为O(n),空间复杂度O(1)。分析:假设字符串表示为XY,X表示需要左旋的部分,左旋后字符串表示为YX。根据公式:代码实现: 1 // 2... 阅读全文

posted @ 2014-08-21 16:46 醉清风JM 阅读(205) 评论(0) 推荐(0)

IT公司100题-25-求字符串中的最长数字串
摘要:问题描述:实现一个函数,求出字符串中的连续最长数字串。例如输入”12345cbf3456″,输出”12345″。函数原型为:voidconti_num_max(constchar*src,char*dest);dest保存最长数字串,返回void。分析:遍历一遍字符串,记录起始位置和长度即可。代码实... 阅读全文

posted @ 2014-08-21 16:35 醉清风JM 阅读(195) 评论(0) 推荐(0)

IT公司100题-21-输入n和m,和等于m
摘要:问题描述:输入两个整数n 和m,从数列1,2,3,…,n 中随意取几个数,使其和等于m,将所有可能的组合都打印出来。分析:利用递归的思路,对于1,2,3,…,n 中的任意一个数,要么选,要么不选。递归下去,直到其和等于m时,输出。解答: 1 // 21.cc 2 #include 3 #inclu... 阅读全文

posted @ 2014-08-18 16:46 醉清风JM 阅读(220) 评论(0) 推荐(0)

IT公司100题-19-求Fibonacci数列
摘要:问题描述:定义Fibonacci数列的定义如下:/ 0 n=0f(n)=1 n=1\ f(n-1)+f(n-2)n=2给定n,求Fibonacci数列的第n项。分析:1 递归法 1 // 19_1.cc 2 #include 3 using namespace std; 4 5 size_t f... 阅读全文

posted @ 2014-08-11 15:57 醉清风JM 阅读(229) 评论(0) 推荐(0)

IT公司100题-18-圆圈中最后剩下的数字
摘要:问题描述:n个数字(下标为0, 1, …, n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(当前数字从1开始计数)。当一个数字被删除后,从被删除数字的下一个数字开始计数,继续删除第m个数字。求这个圆圈中剩下的最后一个数字。分析:这是有名的约瑟夫环问题。最直接的方法:使用链表来模拟... 阅读全文

posted @ 2014-08-11 15:19 醉清风JM 阅读(217) 评论(0) 推荐(0)

IT公司100题-17-第一个只出现一次的字符
摘要:问题描述:在一个字符串中找到第一个只出现一次的字符。例如输入asdertrtdsaf,输出e。分析:最简单的方法是直接遍历,时间复杂度为O(n^2)。进一步思考:字符串中的字符,只有256种可能性,使用字符的为下标,扫描一遍,存储各个字符在字符串中的出现。第二次扫描字符串,查看每个字符在字符串中的出... 阅读全文

posted @ 2014-08-11 13:51 醉清风JM 阅读(142) 评论(0) 推荐(0)

IT公司100题-16-层遍历二元树
摘要:问题描述:层遍历二叉树,同一层从左往右打印。定义二元查找树的结点为:typedef struct BSTreeNode { int data; BSTreeNode *left; BSTreeNode *right;} Node;例如输入二叉树:6/ \4 12/ \ / \25... 阅读全文

posted @ 2014-08-11 12:50 醉清风JM 阅读(154) 评论(0) 推荐(0)

IT公司100题-15-求二元查找树的镜像
摘要:问题描述:输入一颗二元查找树,将该树转换为它的镜像树,即对每一个节点,互换左右子树。例如输入: 6/ \4 12/ \ / \25 816输出: 6/ \12 4/ \ / \16852定义二元查找树的结点为:typedef struct BSTree { int dat... 阅读全文

posted @ 2014-08-10 21:44 醉清风JM 阅读(215) 评论(0) 推荐(0)

IT公司100题-14-排序数组中和为给定值的两个数字
摘要:问题描述:输入一个升序排序的数组,给定一个目标值target,求数组的两个数a和b,a+b=target。如果有多个组合满足这个条件,输出任意一对即可。例如,输入升序数组【1, 3, 4, 5, 13, 17】和目标值20。输出3和17。分析:最简单的办法,直接遍历,时间复杂度为O(n^2)。双下标... 阅读全文

posted @ 2014-08-10 19:51 醉清风JM 阅读(207) 评论(0) 推荐(0)

IT公司100题-13-求链表中倒数第k个结点
摘要:问题描述:输入一个单向链表,输出该链表中倒数第k个结点。链表倒数第0个节点为NULL。struct list_node { int data; list_node* next;};分析:方法1:首先计算出链表中节点的个数n,然后倒数第k个节点,为正数n-k+1个节点。需要遍历链表2次。方... 阅读全文

posted @ 2014-08-09 20:54 醉清风JM 阅读(214) 评论(0) 推荐(0)

IT公司100题-12-求1+2+…+n
摘要:问题描述:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。分析:利用类的静态变量实现:new一含有n个这种类的数组,那么该类的构造函数将会被调用n次。代码实现: 1 // 12.cc 2 #include 3 ... 阅读全文

posted @ 2014-08-09 20:42 醉清风JM 阅读(182) 评论(0) 推荐(0)

IT公司100题-11-求二叉树中节点的最大距离
摘要:问题描述:写程序,求一棵二叉树中相距最远的两个节点之间的距离。10/ \6 14/ \ / \4 8 12 16分析:二叉树中最远的两个节点,要么是根和一个叶子节点,要么是两个叶子节点。代码实现: 1 // 11.cc 2 #include 3 using namespace std... 阅读全文

posted @ 2014-08-08 19:36 醉清风JM 阅读(210) 评论(0) 推荐(0)

IT公司100题-10-翻转句子中单词的顺序
摘要:问题描述:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“Hello world!”,则输出“world! Hello”。分析:先翻转各个单词,然后整体翻转即可。参考代码: 1 // 10.cc 2 #incl... 阅读全文

posted @ 2014-08-08 14:03 醉清风JM 阅读(206) 评论(0) 推荐(0)

导航