慧与科技(Hewlett Packard Enterprise,HPE)最近又火了!他们刚刚拿下了一笔超过 10 亿美元的大订单,要为 X(前 Twitter)提供 AI 服务器。在这次竞争中,HPE 力压戴尔(Dell)和超微(Supermicro),赢得了这场硬仗。HPE 的计算实力到底有多强?能让全球顶级公司愿意砸钱买单?其实,他们的技术人才也是关键。要想进 HPE 当开发,可不是件容易的事,面试难度一点都不低,今天就带大家看看他们的真实考题。
Problem Description:
Given a non-negative integer a
, compute and return the truncated integer of the square root of a
.
Note: You are not allowed to use any built-in exponent function or operator, such as pow(a, 0.5)
or a ** 0.5
.
Example:
Input: a = 4
Output: 2
Input: a = 8
Output: 2
Explanation: The square root of 8 is 2.82842...
, and since the decimal part is truncated, 2
is returned.
Constraints:
0 <= a <= 2^31 - 1
这道题看着简单,但其实涉及到了 二分查找 这个经典算法。要是暴力解法,那就是老老实实从 1 开始一个个试过去,直到找到最大的 x
使 x * x <= a
,但这种方法效率太低,面对大数的时候会跑得很慢。
CSOAHelp 直接提示:
- 用 二分查找 优化计算,从
left = 0
到right = a / 2 + 1
。 - 计算
mid
,检查mid * mid
是否小于等于a
。 - 如果
mid * mid <= a
,说明可能是答案,右移left
继续尝试;否则说明mid
太大,左移right
。 - 最终
right
就是答案。
候选人照着 CSOAHelp 的提示向面试官解释: “平方根的整数部分是一个单调递增的函数,所以我们可以用 二分查找 来快速找到结果。我们先设定搜索范围,每次取中间值 mid
,如果 mid * mid <= a
,那么 mid
可能是答案,就往右试试更大的值;如果 mid * mid > a
,那说明 mid
过大,就向左缩小范围,直到找到最大的 mid
使 mid * mid <= a
。”
面试官听后点头认可,思路没问题。
在 CSOAHelp 的辅助下,候选人很快写出了完整代码:
def sqrt(a):
if a == 0:
return 0
left, right = 1, a // 2 + 1
while left <= right:
mid = (left + right) // 2
if mid * mid == a:
return mid
elif mid * mid < a:
left = mid + 1
else:
right = mid - 1
return right
候选人继续解释代码: “先特判 a = 0
,直接返回 0。然后定义 left = 1, right = a // 2 + 1
作为搜索范围,每次取 mid
,检查 mid
的平方是否等于 a
。如果等于,就返回 mid
;如果小于 a
,说明 mid
可能是解,右移 left
继续尝试;否则左移 right
,最终 right
就是结果。”
面试官追问:“二分查找比暴力解法好在哪里?”
CSOAHelp 提示: “暴力解法的时间复杂度是 O(sqrt(a))
,而二分查找是 O(log a)
,数据量大的时候,二分查找明显更快。”
候选人复述:“直接遍历 1
到 a
的方法太慢,时间复杂度 O(sqrt(a))
,但二分查找每次都砍掉一半的数据,复杂度 O(log a)
,对于大数来说,速度会快很多。”
面试官听完后认可了候选人的回答,并补充道:“在大规模计算中,优化算法是非常重要的,二分查找就是一个典型的优化策略。”
整个面试过程中,CSOAHelp 提供了实时指导,候选人完全不需要自己思考,直接复述提示内容,就能顺利通过面试。最终,候选人成功拿下面试,展现了 扎实的算法基础 和 高效的解题能力。
经过csoahelp的面试辅助,候选人获取了良好的面试表现。如果您需要面试辅助或面试代面服务,帮助您进入梦想中的大厂,请随时联系我。
If you need more interview support or interview proxy practice, feel free to contact us. We offer comprehensive interview support services to help you successfully land a job at your dream company.