最近刚刷完 Tesla 的 Online Assessment在 HackerRank 平台上做的。三道 Tesla OA Questions 我敲了差不多两百行代码难度还行30 分钟左右就全部 AC 了稳的一批今年已经做了不少大厂 OA拿 Offer 也有好几个了这次轻车熟路提前做完后还有时间检查边界。Tesla OA 真题详解第一题SQL 成绩统计有两张表 test_groups组名和每题分数和 test_cases用例 ID、所属组、状态。要求以 test_groups 为主表左连接 test_cases按组名分组统计总用例数、通过用例数、总得分。最后按得分降序、组名升序输出。我直接以 test_groups 为主表左连接 test_cases然后按组名分组统计。总用例数就是数一下用例主键通过用例数用 CASE WHEN 把状态是 OK 的数出来最后总得分就是通过数乘以单题分数。排序的时候先按得分降序再按组名升序就行了。SQL 写起来比较直白注意用 LEFT JOIN 保证没有用例的组也能显示出来。第二题Text Transcription最大插入 a给定字符串 S由小写字母组成。可以在任意位置包括前后插入 a要求插入后字符串中不能出现连续三个 a。如果原字符串已包含 “aaa”返回 -1否则返回最多能插入的 a 数量。如果字符串里本来就有 “aaa”那直接返回 -1 就完事了。其他情况我把非 a 字符当成挡板这样整个字符串就被分成好几个空隙包括前后。每个空隙最多塞 2 个 a所以最大能塞的 a 数就是空隙数量乘以 2最后再减掉原来字符串里已有的 a 数量就是答案。这个方法只要遍历一次字符串就够了特别好理解。第三题Zero Sum Fragments给定整数数组 A求有多少个子数组连续片段的和等于 0。如果数量超过 10 亿返回 -1。这题我用了前缀和 哈希表的经典做法。先建一个哈希表初始放 {0:1}代表前缀和为 0 出现了一次。然后一边遍历数组一边累加当前前缀和每遇到一个前缀和就把哈希表里它之前出现过的次数加到答案里。如果答案超过 10 亿就直接返回 -1。最后再把当前前缀和的次数更新一下。这样 O(N) 时间就能搞定效率很高。整体总结Tesla 这次 OA 三题难度适中第一题 SQL 考察表连接和聚合第二题字符串处理考察贪心思维第三题前缀和考察哈希表优化。我能快速 AC 主要是因为之前刷过类似题型套路比较熟悉。给准备 Tesla 的同学建议SQL 要熟练掌握 LEFT JOIN、分组统计和 CASE WHEN字符串题注意边界和贪心优化前缀和 哈希表是求子数组和的高频技巧HackerRank 平台要提前熟悉输入输出注意大数处理写在最后Tesla OA 虽然时间限制不算松但信息差还是存在的。如果时间紧张或者某道题没太大把握可以考虑Interview Aid的 OA 辅助服务他们在 HackerRank 上操作熟练能帮你快速解决难题确保通过率。有同样在冲 Tesla、其他车企或者科技公司 OA 的朋友欢迎评论区交流
Tesla OA Questions 三题 30 分钟秒杀!HackerRank 稳稳通关
最近刚刷完 Tesla 的 Online Assessment在 HackerRank 平台上做的。三道 Tesla OA Questions 我敲了差不多两百行代码难度还行30 分钟左右就全部 AC 了稳的一批今年已经做了不少大厂 OA拿 Offer 也有好几个了这次轻车熟路提前做完后还有时间检查边界。Tesla OA 真题详解第一题SQL 成绩统计有两张表 test_groups组名和每题分数和 test_cases用例 ID、所属组、状态。要求以 test_groups 为主表左连接 test_cases按组名分组统计总用例数、通过用例数、总得分。最后按得分降序、组名升序输出。我直接以 test_groups 为主表左连接 test_cases然后按组名分组统计。总用例数就是数一下用例主键通过用例数用 CASE WHEN 把状态是 OK 的数出来最后总得分就是通过数乘以单题分数。排序的时候先按得分降序再按组名升序就行了。SQL 写起来比较直白注意用 LEFT JOIN 保证没有用例的组也能显示出来。第二题Text Transcription最大插入 a给定字符串 S由小写字母组成。可以在任意位置包括前后插入 a要求插入后字符串中不能出现连续三个 a。如果原字符串已包含 “aaa”返回 -1否则返回最多能插入的 a 数量。如果字符串里本来就有 “aaa”那直接返回 -1 就完事了。其他情况我把非 a 字符当成挡板这样整个字符串就被分成好几个空隙包括前后。每个空隙最多塞 2 个 a所以最大能塞的 a 数就是空隙数量乘以 2最后再减掉原来字符串里已有的 a 数量就是答案。这个方法只要遍历一次字符串就够了特别好理解。第三题Zero Sum Fragments给定整数数组 A求有多少个子数组连续片段的和等于 0。如果数量超过 10 亿返回 -1。这题我用了前缀和 哈希表的经典做法。先建一个哈希表初始放 {0:1}代表前缀和为 0 出现了一次。然后一边遍历数组一边累加当前前缀和每遇到一个前缀和就把哈希表里它之前出现过的次数加到答案里。如果答案超过 10 亿就直接返回 -1。最后再把当前前缀和的次数更新一下。这样 O(N) 时间就能搞定效率很高。整体总结Tesla 这次 OA 三题难度适中第一题 SQL 考察表连接和聚合第二题字符串处理考察贪心思维第三题前缀和考察哈希表优化。我能快速 AC 主要是因为之前刷过类似题型套路比较熟悉。给准备 Tesla 的同学建议SQL 要熟练掌握 LEFT JOIN、分组统计和 CASE WHEN字符串题注意边界和贪心优化前缀和 哈希表是求子数组和的高频技巧HackerRank 平台要提前熟悉输入输出注意大数处理写在最后Tesla OA 虽然时间限制不算松但信息差还是存在的。如果时间紧张或者某道题没太大把握可以考虑Interview Aid的 OA 辅助服务他们在 HackerRank 上操作熟练能帮你快速解决难题确保通过率。有同样在冲 Tesla、其他车企或者科技公司 OA 的朋友欢迎评论区交流