![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员面试题
文章平均质量分 67
monsterXD
IT技术宅
展开
-
求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句
/***********************************************************************//* 题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句(A?B:C)。 做法:利用静态变量 /转载 2012-12-27 16:56:53 · 763 阅读 · 0 评论 -
【2013微软校招面试题】设计一个栈,当栈满时,新入栈的元素循环回第一个元素的位置将其覆盖
问题,如标题所示~ 解题:见代码如下 #include #include using namespace std;class RecycleStack{public: RecycleStack(int MaxSize):maxSize(MaxSize),curSize(0),tail(0) { s_arr = new int[maxSize];原创 2012-12-27 17:14:44 · 1132 阅读 · 2 评论 -
【2013微软校招面试题】求给定的一个字符串最小需要添加多少个字符才能成为回文串
/* * 给一个字符串s,求出需要最少添加多少个字符才能够使其成为回文串。 * 例如:输入 abc,则需要添加两个字符, abcba, 则输出2; * 输入 aabb,则需要添加两个字符,2 * * 解题思路: DP * 分类讨论首字符与尾字符 * 1) 若首尾字符相等,则问题变为求 S[2]~S[len-1] 字符串的解; *原创 2012-12-28 21:26:40 · 1801 阅读 · 0 评论 -
【2013微软校招面试题】输出节点数为n的二叉树的所有形态
/* * 题意,求节点数为n的二叉树的所有形态,先要想个方式来唯一标示一棵二叉树 * * 方法一:一个前序+一个中序,可以还原一棵唯一的二叉树,故使用【前序输出的字符串+中序输出的字符串】 * 来唯一标示一棵二叉树。 * * 方法二:【将一颗二叉树逐层遍历,若节点不为空,则记为X,为空记为O,最终得到的序列可以唯一标示一颗二叉树。】 * * 建树过程采用递原创 2012-12-28 21:20:54 · 2600 阅读 · 0 评论 -
有序数组A,B,求A中哪些元素在B中
/* * 给定两个排好序的数组A,B,大小分别为n,m。给出一个高效算法查找A中的哪些元素存在B数组中。 * * 方法一:一般在大数组中执行二分查找,将小数组的元素作为需查找的对象。复杂度为 N*log(M) * * 方法二:可以使用两个指针遍历AB,比较当前大小就可以了...时间复杂度o(n+m) */ 解法如上述所给方法所示,现实现方法二的代码如下所示~原创 2013-01-04 12:47:02 · 1395 阅读 · 0 评论 -
有序整型数组A,大小为n,请给出一个O(n)的算法,删除重复元素,O(1)空间
/* * 给定排好序的整型数组A,大小为n,请给出一个O(n)的算法,删除重复元素,且不能使用额外空间。 * * 提示:既然有重复,必有冗余空间。将元素放入数组的前面,并记录下次可放位置,不断向后扫描即可。 */ 解法如提示所示,代码如下~ #include using namespace std;int arr[] = {1,2,3,3,3,3原创 2013-01-04 12:37:10 · 1705 阅读 · 2 评论 -
有序整型数组A,判断A中是否存在两个数之和等于X,时间O(n)
/* * 给定排好序的整型数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X。给出一个时间为O(n)的算法。 * * * 提示:从两头向中间查找。利用有序的条件 * */ 解题思路如提示所示,代码如下~ #include using namespace std;int x;int arr[] = {1,2,3,4,5,6,7,8原创 2013-01-04 12:40:35 · 2483 阅读 · 0 评论 -
【2013一道百度的笔试题】两个字符串操作多少步后变成一样的(编辑距离)
/* * *题目: *给定字符函数 a、插入 b、删除 c、替换 *例如字符串A=acegf,字符串B=adef,最少需要2步操作将A转换为B, *即第一步将c替换为d,第二步将g删除; *(1)请问将字符串A=gumbo转换为字符串B=gambol,最少需要几步操作,列出如何操作(2分) *(2)任意字符串A和字符串B,如何计算最小操作次数,原创 2013-01-04 12:27:47 · 1191 阅读 · 0 评论 -
【2013微软校招面试题】将链表的奇偶位交换,不能使用交换链表中的值这种做法。
/* * 将链表的奇偶位交换,不能使用交换链表中的值这种做法。 * 题意即将链表: head->1->2->3->4->…… 变成 head->2->1->4->3->…… * */ 解题思路:直接遍历链表进行处理即可,注意指针的赋值等细节即可~详见代码如下: #include using namespace std;const int M原创 2012-12-27 17:07:08 · 947 阅读 · 0 评论