1. 2012校招-sonicWALL的两道编程笔试题

    求二叉树中两个结点的最近公共祖先

    比如:对于树

             A
           /
          B
        /   \
       C     D
     /   \
    E     F
    

    结点D,F的最近公共祖先为B

    实现:见源码

    求二进制整数部分bits求反后的值

    比如:对于整数0b1001101,将第2(begin)到第5(end)位(从右往左计数)上的bit求反,得到0b1110001。

    #include <stdio.h>
    
    int reverse_somebits(int a, int begin, int end)
    {
        return a^((1<<end)|((1<<end)-1))^((1<<begin)-1);
    }
    
    void ten_to_two(int a)
    {
        if …
    Tagged as : 笔试 算法
  2. 笔试题目

    2013-网易-校园招聘-C++开发工程师

    Fibonacci number

    F(n)的值是多少?

    Fabonacci

    常规算法:根据Fabonacci的定义,递归求值。时间复杂度$ O(2^n) $

    def fibobacci(n):
        return n>=2 and fibonacci(n-2) + fibonacci(n-1) or n
    

    迭代:利用循环取代递归。时间复杂度O(n)

    def fibonacci(n):
        a, b = 0, 1
        for i in range(n):
            a, b = b, a+b …
    Tagged as : 笔试
  3. 关于指针的一道笔试题

    同学找实习,遇到这样一道笔试题:

    int *a[2][3];
    sizeof(a) = ?
    sizeof(*a) = ?
    sizeof(**a) = ?
    sizeof(***a) = ?
    

    这题还是有点小意思的。遇到这种题,脑子一定要清楚,注意分析。

    对于int *a[2][3]应该这么理解:

    a是个数组,有两个元素;元素也是数组,其有3个元素,每个元素是指向int类型的指针。

    指针的长度固定为4个字节,C语言的int类型也是4个字节。

    这样一分析,这题就简单了。

    sizeof(a)意思是求a数组的长度,数组的长度=数组元素的个数*元素的长度,所以sizeof(a) = 2 * 3 * 4 = 24个字节
    sizeof(*a)中的*a是指a的第一个元素,所以sizeof(*a …
    Tagged as : 笔试 C/C++

Page 1 / 1