快手面试代码题

题一 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

时间: 2024-10-09 04:02:28

快手面试代码题的相关文章

【C/C++学院】0831-类与对象的异常/面试100题1-100

类与对象的异常 Cpp异常 #include <iostream> #include <string.h> using namespace std; //标识错误的类型 class wrong { }; int intdiv(int a, int b) { try { if (b==0) { throw 10;//能够是不论什么对象 wrong(); } int c = a / b; return c; } catch (int data )//类型名 { cout <<

安卓面试备考题收集

最近要参加面试,网上找了一些题来备着,大家也来学习学习吧,话说平时还真有些东西不知道... 面试题一:AIDL的全称是什么?如何工作? Android interface definition language (android接口定义语言) , 用来跨进程的访问方法, 像 游戏中调用支付宝接口就是用的这个. 访问远程的服务的方法. 如何工作. 面试题二:Android程序运行时权限与文件系统权限的区别? 程序运行时权限:Android程序执行需要读取到安全敏感项必需在androidmanife

算法面试:精选微软等公司经典的算法面试100题 第1-40题

精选微软等公司,数据结构+算法,经典面试100题                            --------之前40题 -------------------------- 算法面试:精选微软等公司经典的算法面试100题 第1-40题如下: --------------- --------------1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.      10  / \ 6 14 

(各个公司面试原题)在线做了一套CC++综合测试题,也来测一下你的水平吧(二)

刚才把最后的10道题又看了下,也发上来吧. 下面给出试题,和我对题目的一些理解 前10道题地址 (各个公司面试原题)在线做了一套CC++综合测试题,也来测一下你的水平吧(一) 11.设已经有A,B,C,D4个类的定义,程序中A,B,C,D析构函数调用顺序为? C c; void main() { A*pa=new A(); B b; static D d; delete pa; } A.    A B C D B.    A B D C C.   A C D B D.   A C B D 答案:

iOS开发面试高频题

iOS开发面试高频题,面试不再懵逼 目录 前端技术2016年5月4日 对于要面试iOS开发的同学,可能已经看了很多的面试题.但是网上很多的面试题有些很全,但是没有重点,有些又太少.今天小编给大家整理了一些比较重要和经常问的面试题,总共20个,半小时之内就可以看完. 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;

剑指offer 面试57题

面试57题: 题目:和为s的数字 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 解题思路:使用while循环从两端向中间扫描数组,时间复杂度为O(n) 解题代码: # -*- coding:utf-8 -*- class Solution: def FindNumbersWithSum(self, array, tsum): # write cod

剑指offer 面试14题

面试14题: 题目:剪绳子 题:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,且n>1,m>1),每段绳子的长度记为k[0],k[1],k[2],...,k[m].请问k[0]*k[1]*...*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积为18. 解题思路:基于动态规划和贪婪算法,详见剑指offer P96 解题代码: # -*- coding:utf-8 -*- class Solution: def Max

剑指offer 面试16题

面试16题: 题目:数值的整数次方 题:实现函数double Power(double base, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:主题考虑底数为0.0,指数为负数的情况,此时可以利用全局变量指出g_InvalidInput为True,同时返回0.0 解题代码: # -*- coding:utf-8 -*- class Solution: g_InvalidInput = False def Power(self,

剑指offer 面试18题

面试18题: 题目:删除链表中的节点 题一:在O(1)时间内删除链表节点.给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点. 解题思路:我们要删除节点i,先把i的下一个节点j的内容复制到i,然后把i的指针指向节点j的下一个节点.此时再删除节点j,其效果等同于把节点i删除了. 解题代码: class ListNode: def __init__(self): self.value = None self.next_node = None class Solution: d