设为首页 加入收藏

TOP

华为算法面试题集
2014-11-23 22:22:35 来源: 作者: 【 】 浏览:3
Tags:华为 算法 试题集

1. 有2个长度为N的无序数组, A跟C。
当长度为N时,交换2个数组里面的一些值。 让数组A的总和 减去 C的总和,(或者是反过来也行) 达到一个最小差值, 这个差值将导致2个数组无法继续交换数据产生更小的差值。


解释:数组A里面的所有元素相加后得到的总和(溢出是个问题) 减去数组B里面的所有元素相加的总和, 得出来的数值, 是2数组无法再次交换数据相减得出的最小差值。


2. 用两个栈实现一个队列的功能?请给出算法和思路


参考:设2个栈为A,B, 一开始均为空. 入队: 将新元素push入栈A; 出队: (1)判断栈B是否为空; (2)如果不为空,则将栈A中所有元素依次pop出并push到栈B; (3)将栈B的栈顶元素pop出;这样实现的队列入队和出队的平摊复杂度都还是O(1), 比上面的几种方法要好。


3. 用C语言写一个递归算法求N!


4. 用代码实现选首领(有一群人围在一圈,从第一个人开始数1、2、3,数到3者退出,用循环链表实现)、


5. 字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其中有连续ABC子字符串的个数 )


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇【华为硬件笔试题2】 下一篇英文面试注意事项

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: