TikTok OA 四题分享|半小时内 AC,题目基本都是实现题

刚做完一场 TikTok OA,还是 CodeSignal,四题半小时不到 AC。

这场难度不算高,基本都是模拟 + 实现,真正容易丢分的反而是题目里的几个小条件。把这次遇到的题简单记一下,准备 TikTok OA 的可以看看。

T1|数位乘积 - 数位和

给一个正整数 n,计算:

各位数字乘积 - 各位数字之和

比如 123456

乘积 = 720

和 = 21

答案 = 699

直接 % 10 取个位,//=10 去掉个位,同时维护 product 和 sum。

O(log n),注意乘积中间值可能比较大。


T2|给加法表达式加括号

这个题挺容易因为条件看错。

给定类似:

741+12

必须且只能加一对括号,而且 + 必须在括号里面,左右两边至少各有一位数字。

目标是让最终表达式值最小。

因为字符串长度不大,直接枚举左右括号位置即可。

每种合法划分算:

左边数字 ×(括号内左数字 + 括号内右数字)× 右边数字

最后取最小值。

这题没什么复杂算法,关键就是别把括号的合法范围搞错。


T3|内存分配 + 释放

经典模拟题。

memory 数组:

  • 0 = 空闲

  • 1 = 已占用

支持:

alloc X

从左往右找第一段连续 X 个空闲位置,找到后占用,并返回对应 ID。

erase ID

根据 ID 找到之前分配的区间,然后释放。

我的做法就是:

数组模拟 + HashMap

HashMap 保存:

ID → 对应内存区间

这样 erase 时可以直接定位。

这题最容易漏的是:连续 alloc / erase 后会产生碎片,但每次 alloc 还是要从左边重新找。


T4|数轴放灯,覆盖最多物体

objects 已经按升序排列。

在整数坐标放一盏灯,半径是 radius,求最多能照到多少个物体。

如果覆盖数量一样,返回更小的灯位置

这题直接滑动窗口。

维护一个窗口 [l, r],只要:

objectsr - objectsl ≤ 2 × radius

就说明存在一个灯的位置可以覆盖整个窗口。

不断移动右指针,超出范围就移动左指针,同时记录:

最大覆盖数量 + 最小灯位置

整体 O(n)


这场 OA 总结

题目 核心考点
T1 数位模拟
T2 枚举 + 字符串处理
T3 数组模拟 + HashMap
T4 Sliding Window

这场没有特别难的算法,比较像是在考:

能不能快速读懂规则 → 找到对应模板 → 把边界条件写对。

尤其注意这几个关键词:

product - sum

括号必须包含 +

从左找第一段连续空闲空间

覆盖数量相同取更小坐标

这几个条件一旦看漏,代码再快也容易挂。

另外 TikTok 的 CodeSignal OA 和不少大厂 OA 在题型上确实有一定重合,像模拟、滑动窗口、数组处理这些基础题,平时多练几遍,上手速度会快很多。

最近也在整理 Amazon、Microsoft、Google、Uber、Roblox、Garena、Shopee 等公司的 OA / VO 题目和面经。

正在准备 OA 或 VO 的,可以一起交流。

相关推荐
Flynt11 小时前
OpenJDK禁AI代码半年了,现在执行得怎么样?答案是:全靠自觉
java·开源·ai编程
kyriewen13 小时前
我把今年流传的前端 AI 面试题整理了一遍——4 类场景题+回答框架(附速查表)
前端·面试·程序员
AEI15 小时前
四年间大模型的演进历程
人工智能·面试·程序员
古法安卓16 小时前
Android-日志系统源码解析
android·java·android studio
地平线开发者16 小时前
【模型轻量化专题】衡量模型轻量性的指标
算法
小夏coding17 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng18 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
学习星球19 小时前
OFDM技术精讲:正交性推导、循环前缀原理与80行Python链路仿真(附实测数据)
算法·面试·前端框架
十年Java程序媛19 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko19 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat