1 / 54
文档名称:

百度、谷歌、微软、mtk经典面试题.doc

格式:doc   大小:647KB   页数:54页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

百度、谷歌、微软、mtk经典面试题.doc

上传人:3133613015 2020/11/20 文件大小:647 KB

下载得到文件列表

百度、谷歌、微软、mtk经典面试题.doc

相关文档

文档介绍

文档介绍:有一个整数数组,请求出两两之差绝对值最小的值。记住,只要得出最小值即可,不需要求出是哪两个数。(Microsoft) 
方法1:两两作差求绝对值,并取最小,O( n2 )。
方法2:排序,相邻两点作差求绝对值,并取最小,O( nlgn ).
方法3:有没有O( n )的解法?网上有如下解法:
设数组A = { a1, a2, … , an }, 求 s = min( |ai - aj| ), 其中1<= i, j <=n.
设B = { b1, b2, … , bn-1 }, 且 bi = ai – ai+1
即:b1 = a1 – a2, b2 = a2 – a3, b3 = a3 – a4, …
于是有如下规律:
例如:a3 – a5 = ( a3 – a4 ) + ( a4 – a5 ) =b3 + b4
a1 – a6 = b1 + b2 + … + b5
即:ai – aj = bi + … + bj-1
则数组A中任意两个数的差,都可以用数组B中一个字段的和表示。
则原问题可以转换为:
在数组B中,求连续的某一段,使其和的绝对值最小。(只求最小值,不需要知道具体是哪些数)
例如 B = { 1, -2, 3, -1, -9, 7, -5, 6 };
则绝对值最小值为0,具体是{ -2, 3, -1 } 或 {3, -1, -9, 7} 
网上的解法,一般到这里就没下文了。只是简单的提了一下,类似于最大子序列的和。具体怎么做,还要自己想想。
最大子序列和利用DP,可O( n )求解。这题咋做?纠结。
2.        写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?) 
据说此题是,Microsoft的大牛只有了4行代码就给出了答案。
可惜,不知道是怎么写的。自己试着写写,当然可能会不至4行。单纯追求行数,也没什么意义,如果你愿意可以把所有的程序都写成一行。
注意:
1. 处理前导空格
2. 处理正负号
3. 处理进制(16进制、8进制、10进制)
4. 非法字符( 0---9, a---f, A---F)
5. 注意整数的范围,不能溢出 
view plaincopy to clipboardprint?
bool StrToInt( char *pc, long &value )  
{  
    //去掉前导空格   
    while( ( *pc==' ' || *pc=='\t' ) && *pc != '\0' ) pc++;  
    if( *pc == '\0' )   return false;  
  
    //处理正负号   
    int sign = 1;  
    if( *pc == '+' || *pc == '-' )  
    {  
        if( *(pc+1) =='\0' ) return false;  
        if( *pc == '-' ) sign = -1;   
        pc++;  
    }  
  
    //处理数值   
    long tmp = 0;  
    while( *pc != '\0' )  
    {  
        tmp *= 10;  
        //++优先级比*高   
        if( *pc < '0' && *pc > '9' ) return false;          
        tmp += ( *pc++ - '0' );  
    }  
    value = tmp * sign;  
    return true;  
}  
3.        给出一个函数来输出一个字符串的所有排列 
方法1:
一个简单的DFS。从后往前不断交互。N个字母求全排列,O( n! )。具体实现,看代码吧。
方法2:
如果不会写递归,也可以利用STL。STL里有一个next_permutation函数。利用这个函数可以返回大于原字符串的下一个字典序列。当字符串为最大字典序列时,函数返回false。这样只要先对原字符串排序,然后不断调用next_permuation即可。
view plaincopy to clipboardprint?
inline void Exchange( char *px, char *py )  
{  
    char tmp = *px;  
    *px = *py;  
    *py = tmp;

最近更新

2025年情侣网名二字简约 6页

2025年情人节送女生礼物排行榜 9页

2025年儿童用药安全知识普及与守护 20页

二零二五年度个人消费贷款担保人责任合同 8页

二零二五年度个人水电设施安全评估与整改合同.. 9页

二零二五年度个人无房产证房屋买卖合同履约监.. 9页

二零二五年度个人数码产品买卖合同 9页

二零二五年度个人提成提成比例调整合作协议 8页

二零二五年度个人承揽合同范例:教育培训课程.. 9页

二零二五年度个人房产买卖合同(含交付时间节.. 9页

2025年总结感悟优秀作文 9页

二零二五年度个人对个人房屋租赁合同(含租客.. 8页

2025年儿童反复喘息精准预测与高效治疗方案解.. 43页

二零二五年度个人助学贷款合同模板 8页

二零二五年度个人出租车承包服务合同模板 8页

2025年思科OSPF功能介绍及配置 3页

二零二五年度个人公司代持股协议书:股权代持.. 7页

二零二五年度个人住房出租与租赁合同履约保证.. 7页

二零二五年度个人仓储空间买卖及使用权转让合.. 9页

二零二五年度个人买卖二手车交易保障协议 9页

二零二五年度个人与村委会签订的土地流转及农.. 8页

二零二五年度个人与个人生活消费借款协议 7页

库迪咖啡品牌合作协议 5页

我的大学梦主题班会 29页

(完整版)小学生必背古诗词80首 2页

计算机专业毕业论文3000字 6页

CNAS-EL-03《检测和校准实验室认可能力范围表.. 10页

抗肿瘤药物测试题及答案 7页

XX中学党风廉政建设责任清单 3页

生肖特别好码八句诗讲解 58页