• 人民搜索3


    一、面试形式 
      
         1、3轮1V1的技术面试;某轮面试通过,稍事休息后开始下一轮面试。 
      
         2、面试过程基本分为两部分: 
             1)对简历上所写项目的描述,及回答对方感兴趣的项目细节; 
         2)对方给出数组、链表等常见程序设计问题,要求描述解决问题的思路;并把思路转化为代码(手写)。 
               这一部分是最重要的环节,占面试总时间的85%以上。 
      
    二、面试题回忆 
          
         1、删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个。 
      
         2、求数组(元素可为正数、负数、0)的最大子序列和。 
      
         3、链表相邻元素翻转,如a->b->c->d->e->f-g,翻转后变为:b->a->d->c->f->e->g 
      
         4、链表克隆。链表的结构为: 
         typedef struct list { 
             int data; //数据字段 
         list *middle; //指向链表中某任意位置元素(可指向自己)的指针 
         list *next;//指向链表下一元素 
         } list; 
      
      
         5、100万条数据的数据库查询速度优化问题,解决关键点是:根据主表元素特点,把主表拆分并新建副表,并且利用存储过程保证主副表的数据一致性。(不用写代码) 
      
         6、求正整数n所有可能的和式的组合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2) 
      
         7、求旋转数组的最小元素(把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元 素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。) 
      
         8、找出两个单链表里交叉的第一个元素 
      
         9、字符串移动(字符串为*号和26个字母的任意组合,把*号都移动到最左侧,把字母移到最右侧并保持相对顺序不变),要求时间和空间复杂度最小 
      
         10、时间复杂度为O(1),怎么找出一个栈里的最大元素 
          
         11、线程、进程区别 
      
         12、static在C和C++里各代表什么含义 
      
         13、const在C/C++里什么意思 
      
         14、常用linux命令 
      
         15、解释Select/Poll模型 
      
      
    三、提示 
      
         1、面试给出的程序题,有些有一定难度,在确认清楚理解题意后,迅速思考。不管能否想到思路,建议3分钟之内,一定要把自己当前的想法告诉面试官,与其互动;如有必要,可在思维过程中要求给出提示。 
      
         2、要相信自己,不到面试官提醒耗时太久,都不要给自己心理暗示及告诉面试官,自己想不出来。 
         答案就在拐角处,坚持就是胜利。 
      

         3、虽说招聘信息是说熟悉C/C++或Java均可,但面试官偏好C/C++系(至少我遇到的4个都是这样;其中一个在我写出Java的代码后,要求用C再实现一遍)。

    转自:http://www.cnblogs.com/cswolf/archive/2011/11/21/2267119.html

  • 相关阅读:
    海量数据拆分到nosql系统的一种方案
    软件架构师应该知道的97件事
    【转载】实现软件架构质量属性的战术
    让技术人员看得懂的流程
    【转载】一步步构建大型网站架构
    [转载]从100PV到1亿级PV网站架构演变
    添加和删除hadoop集群中的节点
    windows下JDK环境配置
    如何部署hadoop集群
    android9.0适配HTTPS:not permitted by network security policy'
  • 原文地址:https://www.cnblogs.com/heyonggang/p/2817110.html
Copyright © 2020-2023  润新知