快手面试代码题

Posted dirge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快手面试代码题相关的知识,希望对你有一定的参考价值。

题一 leetcode 168 & 171:

A,B,C,...,Z,AA,AB,...,AZ,BA,...,ZZZ,AAAA.... 求第i个字符串

string solve(int num) {
    string ans;
    while(num--) { // 将0~25映射到‘A’~‘Z’
        int val = num%26;
        ans += 'A'+val;
        num /= 26;
    }
    reverse(ans.begin(), ans.end());
    return ans;
}

题二

已知a数组大小为N,求b数组

b[i] = a[0]a[1]...a[i-1a[i+1]...a[N-1]
O(n)时间复杂度,O(1)空间复杂度。
要求除去循环所用i,无其它额外变量内存。

void solve(int *a, int *b, int N) {
    int i;

    b[0] = 1;
    for(i = 1 ; i < N; i++)
        b[i] = b[i-1]*a[i-1];
    
    b[0] = a[--i];
    for(--i; i > 0; i--) {
        b[i] *= b[0];
        b[0] *= a[i];
    }
}

以上是关于快手面试代码题的主要内容,如果未能解决你的问题,请参考以下文章

一些最基础的面试题

Android研发大厂面试记:阿里,字节,快手,滴滴等面试题汇总

快手Java社招面试题解析

快手Java社招面试题解析

算法面试题

211程序员面试快手,3个面试官都是清华毕业,看到面试题懵了