TikTok 面试真题解析 | 多维数组索引转换(含原题+思路详解)

今天分享一道来自 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: 3

Output:
[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 面试辅助与全流程解析)。

Leave a Reply

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