今天分享一道来自 TikTok(ByteDance)真实面试现场 的算法题。题目本身不算长,却是很多候选人在面试中容易忽略细节的类型。我们在辅助学员面试时,也通过结构化讲解帮助他快速推到正确解法。
📌 TikTok 英文原题
Given shape D: [d0, d1, d2, …, d(m−1)] and a 1-d index, output the corresponding coordinates.
Inputs:
shape: [2, 3]
1-d index: 3Output:
[1, 0]
题目中文解读
给定一个数组的形状(多维数组的维度),例如:
- shape = [2, 3],意味着二维数组大小为 2 行 3 列
- 给你一个 1D 的 index,例如:3
要求:
把这个一维 index 转换成对应的多维坐标。
举例:
二维数组按 row-major(行优先)展开时:
Index: 0 1 2 3 4 5
Value: a b c d e f
其中 index = 3 对应第二行第一列,所以坐标是:
[1, 0]
这道题考察的其实是:多维数组在内存中的线性展开规则 → 逆向推回坐标。
在辅助过程中,我们让学员明确三件事:
✔ 1. 多维数组 index 展开方式
TikTok 默认采用 Row-major order(与 Python / C / Java 一致)。
✔ 2. 公式:从 1D 映射回多维
对每一维依次取:
coord[i] = index // product(shape[i+1:])
index = index % product(shape[i+1:])
对于 shape = [2,3]:
total columns = 3
row = index // 3 = 3 // 3 = 1
col = index % 3 = 3 % 3 = 0
最终得到:
[1, 0]
✔ 3. 延展:多维通用(n维)
若 shape 为 [d0, d1, d2, …], 按相同逻辑做多次整除和取模即可。
学员在弄懂这套逻辑后,就能轻松应对 TikTok、Google、Meta 等公司所有相关题型。
🔍 最终答案(示例题)
Input:
shape = [2, 3]
index = 3
Output:
[1, 0]
📣 想在 TikTok / 字节跳动面试中稳住算法环节?
这是典型的「短但考逻辑」的现场 Coding 题,很多候选人在真正面试时会因为紧张、推导不够快而掉分。
如果你希望:
- 面试时有专业老师实时陪同
- 在算法推导卡住时有人点拨思路
- 代码写到一半有 bug,也能快速帮你定位修正
- 面试开始前帮你预演、题型预测
👉 CsoaHelp 面试辅助可以让你的现场表现稳、快、准,帮助你把真实实力完整发挥出来。
如果你也准备参加 TikTok / ByteDance 的面试,可以随时来问我,我们可以根据你的岗位做针对性训练。
➡️ 可以联系 CSOAHelp(我们提供高质量 OA/VO 面试辅助与全流程解析)。

