码迷,mamicode.com
首页 > 其他好文 > 详细

快手面试代码题

时间:2019-10-14 00:56:02      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:while   映射   return   aaa   int   str   i++   begin   ret   

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

快手面试代码题

标签:while   映射   return   aaa   int   str   i++   begin   ret   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!