CS-OA cs-vo Faang

2024 [Yahoo] VO 面试记录

雅虎(Yahoo!)是一家全球知名的互联网公司,成立于1994年,由斯坦福大学的博士生杨致远和戴维·费罗创立。最初作为一个导航网站和搜索引擎起家,雅虎逐步发展成为提供广泛的网络服务的巨头,包括电子邮件(Yahoo! Mail)、新闻、搜索引擎(Yahoo! Search)、以及广告服务等。经历了互联网泡沫和多次业务调整后,雅虎在2017年被Verizon Communications收购,成为其旗下的一部分,并与AOL合并成立了Oath Inc.(后更名为Verizon Media),2021年,Verizon Media被私募股权公司Apollo Global Management收购,并恢复了“Yahoo”品牌。

雅虎的招聘策略在近年来有所调整,以适应不断变化的技术市场和公司战略目标。2024年2月在北美也多有岗位开放。一起来看看真题吧。

题目描述

给定一个非负整数数组和一个目标和(targetSum),编写一个函数canSum(targetSum, numbers),其中numbers是一个非负整数数组。如果数组中的数字可以被多次选取,且选取的数字之和正好等于目标和,则函数返回true;如果无法找到这样的数字组合,则返回false

The function should return true if the array contains any combination of.elements that add up to exactly the targetSum. If there is no combinationthat adds up to the targetSum, then return false. You may assume that all input numbers are nonnegative!

示例

  • canSum(7, [5, 3, 4, 7]) -> true
  • canSum(7, [2, 4]) -> false
  • canSum(6, [2, 3]) -> true

每个输入数字可以被多次使用。

解题思路

这个问题可以通过递归或动态规划来解决。递归方法的基本思想是,对于每个数字,我们有两种选择:要么包含它,要么不包含它。我们减去当前数字的值并递归地调用函数,直到targetSum减到0(意味着找到了合适的组合),或者所有的选项都已经尝试过且没有找到合适的组合。

递归方法

  1. 基本情况:如果targetSum为0,则返回true;如果targetSum小于0,则返回false
  2. 对数组中的每个数字,递归地调用canSum(targetSum - number, numbers)
  3. 如果任何一个递归调用返回true,则当前调用返回true
  4. 如果数组中的所有数字都尝试过后都没有返回true,则返回false

动态规划方法

动态规划方法通常使用一个布尔数组来保存中间结果,从而避免重复计算。这种方法的核心是从小到大逐步构建目标和,直到达到或超过targetSum

实现代码(递归示例)

在我们的面试辅助中,我们专注于帮助求职者准备北美公司的在线评估和面试过程。我们的服务包括深入的面试技巧训练、简历和求职信的优化建议,以及定制的职业规划建议,面试代面,面试即时辅助,旨在帮助求职者在这些具有吸引力的北美科技巨头公司中脱颖而出。

无论您是寻求在金融领域发展的经验丰富的专业人士,还是刚刚开始职业生涯的应届毕业生,我们的服务都能提供必要的支持和指导,帮助您实现职业目标。联系我,让我们一起开启您在欧洲公司的成功求职之旅。

Leave a Reply

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