面试宝典之二 百度算法面试题分析
2016-03-26 10:52
543 查看
备注:几天之前凌晨6点醒了,也许是心血来潮,突然想用手机记下自己当时思考的几道百度算法面试题,
题目是在园子里看到的。草稿记在QQ日志草稿箱里。
已下为正文:
1.大整数相乘。
计算机表示整数的范围有限,那怎么实现两大整数相乘呢?
想了下没有思路,咨询了google大牛,看到有人是这样实现的:
大整数用字符串表示,每个大整数每一个数字字符转换为对应的整数,存入一维数组中,
然后被乘数的每一位数字分别与乘数的每一位数字相乘,结果保存在另一一维数组中,
此一维数组的大小为:被乘数的个数*乘数的个数,最后处理进位。
此方法用计算机模拟了两数相乘的过程。还有没有更好的方法?我暂时没查到也没想到。
既然大整数相乘计算机不能直接处理,自然而然会想到大整数相除呢?大整数相加呢?大整数相减呢?
大整数加减用计算机模拟人计算的过程很容易,难就难在大整数相除。
想到了两中方法:
1.对大整数因式分解,直至每个因子计算机能表示
2.跟乘法一样用计算机模拟,但是实现起来有些复杂,需要综合使用大整数乘法,大整数减法,大整数比较。
第二题很简单,这里就略过了。
3.有2n+1个数,有n个数重复,找出那个不同的数。
一开始没有完全理解有n个数重复这句话,要完成这道题很简单,可以先排序再找,也可以两重循环遍历,本来这道题没有分析的必要,
但是看了园友的回复,有一个很巧妙的方法,利用位运算的异或性质,时间复杂度为n,a异或b异或b=a,a异或b=b异或a.这手机坑爹啊,异或符号打不出来。
4.有个楼梯,每次只能上一阶或者两阶,到第N次的时候,总共走了多少阶?把所有可能的情况打印出来。
题目大概是这个意思。刚开始不知道怎么下手,每次走的阶数不固定,这有好多种情况,脑袋乱了,这可咋算?
根据概率来算有2的n次方种情况。看到园友的回复是一个费波那锲数列,园主的回答是可以使用动态规划,这些方法可以解决这个问题?
动态规划方法求最值才适用。某个时候突然想到:这个是不是可以使用递规来实现?
题目是在园子里看到的。草稿记在QQ日志草稿箱里。
已下为正文:
1.大整数相乘。
计算机表示整数的范围有限,那怎么实现两大整数相乘呢?
想了下没有思路,咨询了google大牛,看到有人是这样实现的:
大整数用字符串表示,每个大整数每一个数字字符转换为对应的整数,存入一维数组中,
然后被乘数的每一位数字分别与乘数的每一位数字相乘,结果保存在另一一维数组中,
此一维数组的大小为:被乘数的个数*乘数的个数,最后处理进位。
此方法用计算机模拟了两数相乘的过程。还有没有更好的方法?我暂时没查到也没想到。
既然大整数相乘计算机不能直接处理,自然而然会想到大整数相除呢?大整数相加呢?大整数相减呢?
大整数加减用计算机模拟人计算的过程很容易,难就难在大整数相除。
想到了两中方法:
1.对大整数因式分解,直至每个因子计算机能表示
2.跟乘法一样用计算机模拟,但是实现起来有些复杂,需要综合使用大整数乘法,大整数减法,大整数比较。
第二题很简单,这里就略过了。
3.有2n+1个数,有n个数重复,找出那个不同的数。
一开始没有完全理解有n个数重复这句话,要完成这道题很简单,可以先排序再找,也可以两重循环遍历,本来这道题没有分析的必要,
但是看了园友的回复,有一个很巧妙的方法,利用位运算的异或性质,时间复杂度为n,a异或b异或b=a,a异或b=b异或a.这手机坑爹啊,异或符号打不出来。
4.有个楼梯,每次只能上一阶或者两阶,到第N次的时候,总共走了多少阶?把所有可能的情况打印出来。
题目大概是这个意思。刚开始不知道怎么下手,每次走的阶数不固定,这有好多种情况,脑袋乱了,这可咋算?
根据概率来算有2的n次方种情况。看到园友的回复是一个费波那锲数列,园主的回答是可以使用动态规划,这些方法可以解决这个问题?
动态规划方法求最值才适用。某个时候突然想到:这个是不是可以使用递规来实现?
相关文章推荐
- 面试宝典之二 百度算法面试题分析
- 你只是追逐时髦的码农
- 面试宝典之阿里巴巴2014校园招聘笔试题
- 面试宝典之阿里巴巴2014校园招聘笔试题
- 面试宝典之阿里巴巴2014校园招聘笔试题
- 成为更优秀程序员的关键:更多的阅读
- 程序员面试资源大收集
- ***IT程序员自我修养和情商提升文章
- java面试宝典(蓝桥学院)
- 剑指 offer代码解析——面试题38数字在排序数组中出现的次数
- 剑指 offer代码解析——面试题38数字在排序数组中出现的次数
- Java已经开始影响这一代程序员
- 2016年Web前端面试题目汇总
- iOS 面试基础题目
- 编程面试的10大算法概念汇总
- 如何写出杀手级简历(针对程序员)
- 国外程序员是如何准备面试的?
- 应聘公司的时候,你也需要向面试官提出的5个杀手锏问题
- 周鸿祎:很多程序员聪明,但我一看就知道他不会成功
- 那些年前端经典面试题