【温哥华Intel面经】LeetCode 278轻松破解,Python代码秀一波!
大家好!刚结束Intel温哥华的面试,来分享一下热乎的面经~今天考的是LeetCode 278(First Bad Version),一道经典的二分查找题,面试官直接点名要用Python写。
题目回顾
题目很简单:给定n
个版本号,其中某个版本之后全是坏的(用isBadVersion(version)
判断),要求找出第一个坏版本。
解题思路
- 二分查找是核心!
- 注意边界条件,避免死循环(比如
left <= right
还是left < right
)。 - Python的
//
整除操作符记得用上~
代码展示
直接上我的Python解法,简洁高效:
def firstBadVersion(n):
left, right = 1, n
while left < right:
mid = (left + right) // 2
if isBadVersion(mid):
right = mid
else:
left = mid + 1
return left
时间复杂度O(log n),面试官点头表示满意哈哈~
面试反馈
面试官夸了代码的可读性,还问了下测试用例设计(比如全好/全坏/边界版本)。最后聊了聊团队用的AI加速工具,整体氛围很chill~
总结:LeetCode刷题真的有用!大家加油冲!
PS:有同在温哥华找工的小伙伴吗?欢迎交流!
#面经 #LeetCode #Python #Intel温哥华