首页 > 其他 > 详细

快手面试代码题

时间:2019-10-14 01:26:25      阅读:128      评论:0      收藏:0      [点我收藏+]

题一 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];
    }
}

快手面试代码题

原文:https://www.cnblogs.com/dirge/p/11568637.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!