算法实习生面试记录

算法实习生面试
2018/5/21

    前记: 现在大三,想找一份暑期实习生工作。陆陆续续面了几家公司,基本定位都在算法方向。由于前期没有准备,所以基本结果都很惨。第一次去面试时,直接被面试官现教。现在实习基本确定,所以想要整理一下这段时间的面试经过,特别是针对一些被问到的面试题统一规整,希望为之后的找工作留下经验,也分享出来供大家参考。

一. 面试题目

​ 挑选我认为比较具有代表性的题目来分享,也是重新整理,给自己加深印象。

1.【头条】给出一个计算 x \sqrt x x 的算法,并手写代码。
    只要学过计算机语言的同学应该都有做过这道题。这是一道非常基础且典型的迭代算法题。基本思想是用牛顿迭代法。
至于什么是牛顿迭代法,可以参考这里
    牛顿迭代法常被用来作方程的寻根,这里最重要的就是把计算开根号的运算转化为方程寻根问题。公式如下:
x 2 − a = 0 x^2-a=0 x2a=0
现在问题就变成了:已知一个非负数a,求出方程 f ( x ) = 0 f(x)=0 f(x)=0的根,其中 f ( x ) = x 2 − a f(x)=x^2-a f(x)=x2a
牛顿法的迭代公式如下: x n + 1 = x n − f ′ ( x n ) f ( x n ) x_{n+1}=x_n- \frac {f'(x_n)} {f(x_n)} xn+1=xnf(xn)f(xn)
具体迭代步骤如下:
1) n = 0 , x 0 n=0,x_0 n=0,x0为初始值,可以选择 x 0 = 1 x_0=1 x0=1
2)计算 f ( x n ) f(x_n) f(xn),如果 ∣ f ( x ) ∣ &lt; ϵ |f(x)|&lt;\epsilon f(x)<ϵ,则停止迭代, ϵ \epsilon ϵ为给定的误差项,否则转到3);
3)计算: x n + 1 = x n − f ′ ( x n ) f ( x n ) x_{n+1}=x_n- \frac {f&#x27;(x_n)} {f(x_n)} xn+1=xnf(xn)f(xn),回到2)。
到此牛顿迭代法就完成了。
    我面试的时候,知道要将这个问题转换,因为不熟练愣是没有想起怎么转为方程求根。当时我索性用了二分的办法来计算,不过面试官似乎觉得也还能接受。这个经验告诉我学习时一定不要眼高手低,对于这种小细节也要同等关注,细节决定成败不是没有道理的。

2.【头条】题目:有一个根据日期排列,内容为当天天气温度的列表A。请你根据该列表A,返回一个同样大小的列表B,满足列表B中每一个位置的值为A中该天之后距离其最近且比其温度高的日期,若没有则该位置为-1。例如,用索引代表日期,列表 A = [ 23 , 22 , 15 , 14 , 17 , 23 ] A=[23,22,15,14,17,23] A=[23,22,15,14,17,23],则需要返回的列表为 B = [ − 1 , 5 , 4 , 4 , 5 , − 1 ] B=[-1,5,4,4,5,-1] B=[1544

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值