华为一道面试题

原创 2004年11月02日 11:53:00
——从华为一道面试题浅谈计算机专业在校大学生该如何学习专业课程,信心百倍挑战就业!
    
 大学生早已不是天之骄子,仅仅是一个普通劳动者。

       网上一句顺口溜“本科生象条狗,硕士生满街走,只有博士才能抖一抖”真正恰如其分地说明了这一点。我想许多到深圳求职的,到过宝安北路的深圳人才大市场的大学生朋友会有同感。只要是非休息日,场场爆满,黑压压的人头攒动。就业的残酷性已经到了”学士学士靠边站,硕士硕士中间站,博士博士往前站。听说你是海归派,Hello Hello签合同。“的地步。

      计算机专业的毕业生由于前几年就业形势好,IT整个行业还不错,工资相对高点,所以许多人纷纷转行搞编程。这两年行业不景气,工资大不如前,但搞编程的人还是越来越多,特别是非计算机科班出生的。面对这样的现实,我们计算机专业在校大学生应该怎样调整,迎战就业呢?
 
       在回答这个问题之前,我们还是来看看现在的公司都是怎样招人的。

       现在找工作,建议在网上找。深圳这边效果好的网站是中国人才热线。天天在上面发简历,等着公司打电话要你去面试就行了。如果有公司要你去面试了,基本都是要过关斩将才有机会和人面谈。一般都是一进公司门,前台小姐会很热情地给你一份试卷做(你不要多问,先老老实实做完题吧:)),根本就不给你机会面谈(题目答得好,你才具备资格和人面谈)。做完了,就放到前台那里,回家等电话吧。机会好的话,可能是管人事方面的人跟你聊聊天,比查户口都要严,什么都问。我是觉得有空要多看看政府发言人、影视明星发言人、公司发言人等等这类讲话,多学学他们是怎么回答记者提问的,这样你才能对付那些人力资源的人。呵呵,这是题外话了。

       看到这里,你终于明白,考试还是重要的第一关。都考些啥?我们从华为一道面试题来看看吧!

       原题大意是这样的:
       有N个大小不等的自然数(1--N),请将它们由小到大排序。
       要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。
       (请你做做看,时间20分钟)

       这一题40分(面试试卷总分100分,60分钟完成。)占40%,可以说对面试成绩至关重要,借用高考的一个名词,这是最后“压轴题”。试卷的分布是这样的,3--5个填空题,4个左右名词解释,8个左右选择题(单选、多选混在一起),2个编程题(任选一题,多做按得分少的计入总分)。就整体难度来说不是很大,考的范围相对来说有点大--C语言、数据结构、网络基础、操作系统、软件工程、数据库等等,但都很基础很基础,都是计算机专业必修课。如果基础知识牢固的话,可能40分钟就能做完。

       我上面所说的从这道“压轴题”可窥一斑了。相信许多人在拿到这道题,第一感觉就是很简单嘛,似乎不敢相信会考这么简单的题目!但是,就是这么简单的题目,还真是考倒了许多人,都是大学本科生,学计算机的,有的还是研究生。还真有点“简单一道排序题,考倒多少读书人!”的味道。这是我一个在华为的同学告诉我的,所以可信度应该是很高的。

       如果是平时自己做作业,我相信许多人可能一下子就做出来了。原因我分析有两个:一是平时看题会仔细一些,有足够的时间;二是心理上觉得华为不可能考得这么简单,老想是否有什么“陷阱”,过度紧张,加之考试时间本身也不长,60分钟,估计大多数人花在这题上面的的时间一般也就20~30分钟吧。因此,建议在校期间应加强心理素质的训练,这么多大大小小的考试都经历过了,再考一次又有何妨!

       从这道题出题意图来看,出题者主要是想考面试者的思维是否敏捷清醒、做事是否认真仔细是否善于思考、基本知识掌握程度如何。为什么这么说呢,第一这道题的确不难,就是一般排序。排序的方法在数据结构中讲得实在是太多了,各种各样的选择排序、插入排序、冒泡排序、希尔排序、堆排序、快速排序等等。但是,用心的人就记得它们当中没有一个算法复杂度是O(n),且不说空间复杂度要满足O(1)。第二就是这道题真正的考点就是看你能否想到数组的下标与这N个数存在的关系。这就是考题中的个小玄机。这N个数随你怎么乱序,排好序后就是数组(让下标从1开始)下标为1的元素,里面放的就一定是1,下标为n的元素,里面放的就一定是N。观察出这点,题目就解决了。

        这道题三言两语就分析完了(详细程序见后面)。透过这道题,我来简单说说计算机专业在校大学生该如何学习专业课程。正如你所见,IT有名的公司,考试题目的难度也不过如此。我想只要是想招应届毕业生的公司,他们都不会出很高深的东西来考你。大家都知道,在校是学习基础理论知识的,不是从事研究的,所以他们没有必要那么做。因此,建议多在基础知识方面下工夫,有条件的多做习题、多上机、勤思考,多看看同一个问题其他人是怎么解决的,和你的有什么不同。有精力的人,试着考程序员、高级程序员,这样你有个目标,学习起来可能更来劲,各专业课学起来联系更紧密。

       总之一句话,注重基础知识,有目标的学习,理论结合习题集。

       [一家之言,欢迎有兴趣的朋友一起讨论:)]
*/


void sort(int e[], int n)
{
 int i;
 int t; /*临时变量:空间复杂度O(1)*/

 for (i=1; i<n+1; i++) /*时间复杂度O(n)*/
 {
  t = e[e[i>; /*下标为e[i]的元素,排序后其值就是e[i]*/
  e[e[i> = e[i];
  e[i] = t;
 }
}

void main()

 #define MAX 10
 int i, a[MAX+1]; 
 
 printf("Input the number from 1 to %d:/n",MAX);
 for (i=1; i<MAX+1; i++)
 {
  scanf("%d",&a[i]);
 }
  
 sort(a,MAX);

 printf("/n====sort over====/n");
 for (i=1; i<MAX+1; i++)
 {
  printf("%d ",a[i]);
 }

 printf("/n");
 system("pause");
}

关于一道面试题的解答(华为公司python面试题,要求10分钟写出代码)

题目: 有两个序列a,b,大小都为n,序列元素的值任意整形数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 思路: 1 两个序列什么时候和差...
  • zhiyuan_2007
  • zhiyuan_2007
  • 2012年06月05日 18:07
  • 3387

史上最难的一道Java面试题

求下面这段程序的运行结果public class TestSync2 implements Runnable{ int b=100; synchronized void m1() ...
  • weixin_38553453
  • weixin_38553453
  • 2017年06月08日 15:31
  • 612

web前端一道很“坑”的js面试题

f = function() {return true;}; g = function() {return false;}; (function() {if (g() && [] == ![]) ...
  • k358971707
  • k358971707
  • 2017年02月23日 22:28
  • 999

华为的JAVA面试题及答案(部分)

QUESTION NO: 1public class Test1 { public static void changeStr(String str){ str="welcome...
  • G0_hw
  • G0_hw
  • 2017年04月09日 14:10
  • 867

一道华为面试题

//华为面试题目 //通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序, //将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 //压缩规则: //1、仅压缩连续重...
  • jingxiaoyang2014
  • jingxiaoyang2014
  • 2013年09月24日 22:32
  • 218

华为公司java面试题及答案

1、面向对象的语言特征 封装、继承、多态 2、Java I/O中字符流和字节流的区别 字节流是传递0~255的整数而Java中有一些(如unicode代码)不能使用字符流,是特殊的字节流, 3、Has...
  • maguanghui_2012
  • maguanghui_2012
  • 2015年07月02日 13:35
  • 1326

华为16道经典面试题

面试过程中,面试官会向应聘者发问,而应聘者的 回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答...
  • godloveyuxu
  • godloveyuxu
  • 2017年06月19日 16:59
  • 625

一道华为的面试题

  • my_2008wing
  • my_2008wing
  • 2009年06月24日 11:39
  • 276

华为的一道面试题

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则:     1、仅压缩连续重复出现的字符。比如字符串...
  • liuxinshihua
  • liuxinshihua
  • 2014年07月31日 00:03
  • 352

华为--软件工程师面试题(1)

华为 1.static有什么用途?(请至少说明两种)     1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。     2) 在模块内(但在函数体外),一个被声明为静态的...
  • THISISPAN
  • THISISPAN
  • 2012年04月19日 12:16
  • 6744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:华为一道面试题
举报原因:
原因补充:

(最多只允许输入30个字)