面试题
实现一个函数, 完成 开根号 的操作, 方法签名如下.
double sqrt(int v, double t)
要求:
不能调用系统库函数, 诸如
Math.sqrt(v)
之类的;假设计算出的结果为
r
, 要求满足如下条件 , 其中, 是真实的值,t
为给定的一个误差, 例如0.1
等, 即你计算出的值r
要在给定的误差范围内.实现语言不限, 你条件可以比上述更加苛刻, 但不能宽松, 举例而言, 我调用你的接口
sqrt(9, 0.21)
返回值属于[2.79, 3.21]
这个区间的任意一个都满足条件.
看到这里, 其实你可以 拿出笔和纸, 尝试解答一下, 强调一下, 一定要注意给定的误差条件, 欢迎沟通交流.
投票
之前那篇文章也去开发者头条之类的转发了一下, 有不同的意见. 这里就想搞一个投票, 来看看大家的观点. (投票前思考下?)
额, 关键字是"二分", 其实也是一般预期得到的答案.
额, 对了, 如果你是第一次看到这篇文章, 你可以先想想这道题目怎么解答, 如果一时想不出, 可以点击阅读原文(前文), 看看分析及相关提示(就是一场模拟面试). 当然, 也欢迎后台留言讨论, 你可以 show me your code. 经过这么多轮面试下来, 发现各种条件能兼顾全, 不是一个容易的事情, 不信你可以试试?
网上也有很多大 V 聊过纯算法面试相关话题, coolshell的"为什么我反对纯算法面试题", zhaojie的"我看面试时出(纯)算法题", 还有之前 homebrew的作者在 Google 面试被拒等等引起了相当多讨论. 其实, 我也反对这种纯算法面试(关键在于我自己也不会啊, 如果支持就找不到饭碗了 🙃), 但是 我完全不承认本题是一道高难度的算法题目, 我并不承认这种题目在实际工作中用不到, 面试官面这种题目很无聊很DT. 更何况的是, 都用示例讲了算法了. 工作中难道不会用到, 别人给了一个解决某个问题的场景的小算法, 告诉你让你实现?
如果有人还是挺觉得这样的面试没用, 一线码农根本不需要这种技巧之类的, 那我只能说, 因为程序员本身是一个很庞大的群体, 确实是各个层次的人都需要, 能找准自己的位置就好.
恩, 就酱.
本文分享自微信公众号 - 程序猿石头(tangleithu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4599303/blog/4461143