2025年6月北美STEM求职超低谷,point72罕见放出FT岗位 – 快慢指针原地移零,一招斩获Offer!

最近太难啦!不仅天气炎热空调坏了,而且无论是全职FT岗位还是NG intern岗位都迟迟没有开放,导致我们业务不佳。不过经过我们CSOahelp仔细搜索,发现了point72开了一个SDE的岗位,虽然很快就关闭了。但是我们的学员还是抓住机会申请进入了面试,这次给大家分享一下真题,大家在没有面试的暑期也要努力刷题备战2025秋招哦。

最近在Point72 2025年6月份新开的SDE面试环节里,我们发现了如下的题目。

题目:给定一个整型数组,需要在不额外申请空间的情况下,将所有零都移除,并且保持非零元素的相对顺序。函数签名大致是:

        
def remove_zeros_inplace(array: List[int]) -> None:
    """
    Removes zeros from array.
    Saves ordering of non-zero elements.
    Use O(N) time complexity.
    Uses O(1) additional memory complexity (works inplace).
    """
        
    

解法其实很直接:

用“快慢指针”在一次遍历中完成。

定义 slow=0,然后让 fast 从头到尾走一遍,每当 array[fast] != 0 时,就把 array[fast] 写入 array[slow],并把 slow 自增。

循环结束后,slow 之前都是非零元素,再把 slow 到末尾的所有位置填成 0 即可。整个过程只遍历了一次数组,时间复杂度 O(N),只用了常数级额外空间。

        
def remove_zeros_inplace(array: List[int]) -> None:
    slow = 0
    for fast in range(len(array)):
        if array[fast] != 0:
            array[slow] = array[fast]
            slow += 1
    while slow < len(array):
        array[slow] = 0
        slow += 1
        
    

面试官针对时间、空间复杂度以及“如何避免多余写入”三次追问,经过我们CSOahelp面试辅助他都能一一作答,最终顺利通过了这一轮考察,为了后续拿到offer奠定了基础。

如果你也在准备Point72、Meta、TikTok等大厂的算法与系统设计面试,却不清楚如何拆题和应对各种边界,欢迎添加微信 csvohelp,即可领取北美面试求职通关秘诀。我们也有代面试,面试辅助,OA代写等服务助您早日上岸~

Leave a Reply

Your email address will not be published. Required fields are marked *