这次帮一位同学全程辅导了 Salesforce OA ,90分钟 2 道题顺利满分通过,特意把真实面经整理出来分享给大家。Salesforce 作为全球顶级 CRM 公司,技术面试含金量一直很高。他们的 OA 通常是 2 道算法题 + 90 分钟,难度稳定在 LeetCode Medium 级别,这次把完整题目 + 解题思路整理出来,准备投 Salesforce 或类似大厂的同学可以重点看看。

Salesforce OA coding 1
给定一组在不同时间采集的不同测量值,找出任意两个测量值之间可能的最小绝对差。
打印所有具有此最小差值的测量值对,按升序排列:
- 每对内部元素升序(例如,若
a < b,则输出a b) - 所有对之间按第一个元素升序,再按第二个元素升序
示例:
輸入:[-1, 3, 6, -5, 0]
最小绝对差为 3,满足的对有 (3,6) 和 (0,3)
輸出:
plaintext
0 3
3 6
解題思路
本质是排序+贪心:先对数组排序,因为最小绝对差一定出现在相邻元素之间,先遍历一遍求出全局最小差值,再遍历一遍收集所有差值等于该最小值的相邻数对,按顺序输出即可,时间复杂度 O(n log n)。
Salesforce OA coding 2
实现一个网络中恶意软件传播控制的原型服务。
网络中有 g_nodes 个节点和 g_edges 条双向边,第 i 条边连接 g_from[i] 和 g_to[i]。
部分节点已被恶意软件感染:
malware[i] = 1表示节点i已感染malware[i] = 0表示节点i未感染
传播规则:任何被感染的节点会感染所有直接相连的未感染节点,此过程持续到没有新节点被感染为止。
任务:必须从网络中移除恰好 1 个节点,使得最终被感染的总节点数最少。
- 如果多个节点移除后得到相同的最小感染数,则返回编号最小的那个节点。
示例:
初始感染节点:[3,5]
返回:3
若移除节点 3,最终只有节点 4,5 被感染,感染数最少
解題思路
这道题是图的连通分量问题:先用 DFS 或并查集找出所有连通分量,并统计每个分量的大小和感染节点数量;只有当某个分量中恰好有 1 个感染节点时,移除它才能阻止整个分量被感染(收益为该分量大小),否则无法阻止传播;最后在所有可拯救的节点中选能减少感染最多的,若有并列则返回编号最小的那个。
最后想对正在准备 OA 的同学说:
如果你也遇到 HackerRank、Codesignal、这些平台的 OA 觉得有点紧张,或者时间不够、思路卡壳,可以考虑找 programhelp 帮忙。我们是一支北美 CS 专家团队,能提供 OA 代寫 和实时辅导,通过安全远程的方式协助,确保所有测试用例 100% 通过,不通过不收费,过程也比较安心。之前帮不少同学处理过 Salesforce、Google、Meta、Amazon 等大厂的 OA,都顺利拿下了。
有需要的话随时联系我们,祝大家 OA 都能稳过!