杂七杂八笔试题

2020-01-03  本文已影响0人  APP4x

灰度等级为256级,分辨率为10241024的显示器,至少需要的帧缓存容量为()
答案:2的8次方为256,所以一个像素占8位即1个一节,所以1024
1024*1字节等于1M 字节

小明的游戏账号密码是一串8位数字,只记前面5个数字为38034。但他肯定,后面3个数字全是奇数,最后一个数字是5,且后3个数字中相邻数字不相同,小明至少要试多少次才能保证登入( )
答案:4*4=16

在一个长度为n的顺序表中向第i个元素(0<i<=n+1)之前插入一个新元素时,需向后移动( )个元素
答案:n-i+1

char* GetMemory2(void)  
{  
    char p[]="hello word";  
    return p;  
}  
void PrintString(void)  
{  
    char* str = NULL;  
    str = GetMemory2();  
    printf(str);  
}

答案:输出乱码,栈内申请的内存会被释放

static void Q5()
{
    string str = "We%20are%20happy";
    str = str.Replace("%20", " ");
    Console.WriteLine(str);
}

如果是C++
先遍历一边有几个字符
计算出更新后的字符串长度
进行移动替换

规律从左到右递增,从上到下递增

static void Q4()
{
    int target = 7;
    int[,] arr = { { 1, 2, 8, 9 }, { 2, 4, 9, 12 }, { 4, 7, 10, 13 }, { 6, 8, 11, 15 } };

    int len = 4;
    for (int i = len - 1; i >= 0; i--)
    {
        for (int j = len - 1; j >= 0; j--)
        {
            if (arr[i, j] > target)
                continue;

            if (arr[i, j] == target)
                Console.WriteLine("Find i:{0}, j:{1}", i, j);
        }
    }
}

从大大小判断,可以缩减查找范围

int[,] 是二维数组
int[][] 是嵌套数组

static void Q3()
{
    int[] a = { 2, 3, 1, 0, 2, 5, 3 };
    HashSet<int> set = new HashSet<int>();

    for (int i = 0; i < a.Length; i++)
    {
        if (!set.Add(a[i]))
        {
            Console.WriteLine(a[i]);
        }
    }
}

时间复杂度On,空间复杂度On

如何优化:
使每个数移动到对应的下标处,判断是否重复

上一篇 下一篇

猜你喜欢

热点阅读