是我在Meta面试的一些过程和经验分享一下
Meta面经: Onsite面
Coding:题目一: 347.Top K most freqent elements 题目二:find local min,和162思路一样,用binary search就好),写完dry run了一些test case, 让自己define一些test case, 也讨论了heap的complexity 常规BQ:包括冲突,most proud of,critical feedback SD:Proximity System.Alex Hu书里读到的基本都涉及,也讨论了优劣点 Merge Sorted Array 题目二:126.字阶梯 II
所有iCloud Meta 面经 ( On-site 面) Coding面: 题目一: 347.Top K most fregent elements题目二: findlocalmin,和162思路一样,用binary search就好,写完 dry run了一些testcase,让自己define一些test case,也讨论了heap的complexity VBQ面:包括conflicts,most proud of, criticalfeedback
所有iCloudVBQ面: 包括conflicts,most proud of,criticalfeedback VSD:Proximity System.Alex Hu书里读到的基本都涉及,也讨论了优劣点 Coding面:题目一:88Merge Sorted Array题目二: 126.Word Ladder ll
Meta12月最新电面经验分享 (篇幅有限,文字只能发一部分,需要更多联系我们) 第一题: inputs: 3 sorted arrays,output: one sorted array with unique item完成,
面试官说用 priorityqueue over-skilled;第二题: input:string with adjcent dupliacated letter, output:string without anyadjcent dupliacated letter after multiple removals说
了解题思路:用recursion and stringbuilder,在写的时候卡壳,没有时间写完。面试官说算法是对的
第一题: Linux文件路径那道题给一个当前路径,和要cd 去的路径,输出新路径比如当前路径/a/b,然后输入“cd e/t/../g//h“,输出/a/b/e/h注意要去的路径第一个字符可能是/,这样就不考虑当前路径了第二题:表达式求值,只考虑加法和乘法。比如输入2+3*5,输出17两道题都是需要较好的代码能力才能做出来的题。面试官是在美国读本科的烙印,迟到了三分钟。而且他人在室外,中间还有抱着电脑走动的行为。我40分钟把两题写完,没有 bug,都手动跑了 test case。最后问了面试官一个问题,提前 2 分钟结束。最终还是挂了
使用递归的方法来遍历二叉搜索树,并计算在给定范围内的所有元素的和。
首先,你需要定义一个二叉树节点的结构,包括节点的值和左右子节点。
类 TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right
然后,你可以定义一个递归函数来计算给定范围内的元素和。
def range_sum(root, low, high): if root is None: return 0 # 如果当前节点的值在范围内,将其加入和中 if low <= root.val <= high: return root.val + range_sum(root.left, low, high) + range_sum(root.right, low, high) # 如果当前节点的值不在范围内,只遍历左子树或右子树 elif root.val < low: return range_sum(root.right, low, high) else: return range_sum(root.left, low, high)
最后,你可以使用这个函数来计算给定二叉搜索树中在范围[low, high]内的所有元素的和。
# 创建二叉搜索树 # 10 # / \ # 5 15 # / \ \ # 2 7 20 root = TreeNode(10) root.left = TreeNode(5) root.right = TreeNode(15) root.left.left = TreeNode(2) root.left.right = TreeNode(7) root.right.right = TreeNode(20) low = 5 high = 15 # 计算范围[low, high]内的元素和 result = range_sum(root, low, high) print(result) # 输出: 32 (2 + 5 + 7 + 15 + 20)
在这个例子中,给定的二叉搜索树是:
10 / \ 5 15 / \ \ 2 7 20''' 我们要求范围[5, 15]内的元素和,结果为32 (2 + 5 + 7 + 15 + 20)。
欢迎来到 Meta! 这只是一个简单的共享明文板,没有执行功能。 当您知道要用于面试的 WAT 语言时,只需从左侧栏的下拉列表中选择它即可。 祝您面试愉快! 你会得到一个二叉搜索树。目标是找到树中所有元素的总和,这些元素在 low, highl.
使用递归的方法来遍历二叉搜索树,并计算在给定范围内的所有元素的和。
首先,你需要定义一个二叉树节点的结构,包括节点的值和左右子节点。
然后,你可以定义一个递归函数来计算给定范围内的元素和。
最后,你可以使用这个函数来计算给定二叉搜索树中在范围[low, high]内的所有元素的和。
在这个例子中,给定的二叉搜索树是:
英文版