DEV Community

net programhelp
net programhelp

Posted on

TikTok 技术面试题目回顾:算法 + 系统设计

TikTok技术面试算法难度高、系统设计贴近业务场景著称,尤其注重实时数据处理和高并发优化。以下是 2025 年最新面试真题及解题思路,涵盖 算法、系统设计、行为面试 三部分。


一、算法题目回顾(80% 出现率)

1. 高频算法题型

【1】图算法(BFS/DFS/Dijkstra)—— 40%

题目示例

"给定用户关注关系图(有向图),判断用户 A 是否间接关注用户 B(存在可达路径)。"

解法(BFS + 邻接表)

from collections import deque  

def is_following(graph, A, B):  
    queue = deque([A])  
    visited = set()  
    while queue:  
        user = queue.popleft()  
        if user == B:  
            return True  
        for neighbor in graph.get(user, []):  
            if neighbor not in visited:  
                visited.add(neighbor)  
                queue.append(neighbor)  
    return False  
Enter fullscreen mode Exit fullscreen mode

考察点

  • 图的表示(邻接表 vs 邻接矩阵)
  • 时间/空间复杂度优化(避免重复访问)

【2】动态规划(DP)—— 30%

题目示例

"视频推荐优化:用户每天最多观看 k 个视频,给定视频热度列表,最大化一周观看总热度。"

解法(类背包问题)

def max_hotness(videos, k):  
    n = len(videos)  
    dp = [0] * (n + 1)  
    for i in range(1, n + 1):  
        dp[i] = max(dp[i-1], dp[max(0, i-k)] + sum(videos[max(0, i-k):i]))  
    return dp[n]  
Enter fullscreen mode Exit fullscreen mode

优化点

  • 前缀和预处理避免重复计算 sum()
  • 滚动数组降低空间复杂度

【3】字符串/数组处理 —— 20%

题目示例

"检测视频标题是否近似重复(忽略大小写和空格,如 'TikTok' vs 'TiK ToK')。"

解法(标准化 + 哈希)

def is_duplicate(title1, title2):  
    def normalize(s):  
        return s.lower().replace(" ", "")  
    return normalize(title1) == normalize(title2)  
Enter fullscreen mode Exit fullscreen mode

二、系统设计题目回顾(20% 出现率)

1. 经典题目:设计 TikTok 直播评论区

需求

  • 支持 每秒 10 万+ 评论 实时展示
  • 保证 全球用户低延迟(<200ms)
  • 处理 敏感词过滤

设计方案

  1. 数据流架构
   graph LR  
       A[客户端] --> B[API Gateway]  
       B --> C[消息队列 Kafka]  
       C --> D[流处理 Flink]  
       D --> E[敏感词过滤]  
       E --> F[Redis 缓存]  
       F --> G[客户端 WebSocket]  
Enter fullscreen mode Exit fullscreen mode
  1. 关键决策
    • 消息队列:Kafka 高吞吐量缓冲
    • 实时处理:Flink 做流式过滤
    • 缓存:Redis Sorted Set 存储热评
    • 分片策略:按直播间 ID 水平分片

2. 2025 新题型:AI 推荐系统设计

题目

"如何为 TikTok 的‘发现’页设计视频推荐系统?"

核心模块

  1. 特征工程
    • 用户画像(观看历史、点赞、停留时长)
    • 视频 Embedding(CNN 提取视觉特征)
  2. 模型训练
    • 图神经网络(GNN)分析社交关系
    • 协同过滤(用户-视频交互矩阵)
  3. 在线服务
    • 推荐结果预计算 + Redis 缓存
    • A/B 测试框架(对比不同算法效果)

三、行为面试(100% 出现)

TikTok 核心价值与答题模板

  1. "Fast Iteration"(快速迭代)

    • 问题:"如何在不降低质量的前提下加速开发?"
    • STAR 模板
     Situation: 竞品上线新功能,需 2 周内响应  
     Task: 开发相似功能并保证稳定性  
     Action: 采用模块化设计,复用现有组件  
     Result: 提前 3 天上线,DAU 提升 12%  
    
  2. "Data-Driven"(数据驱动)

    • 问题:"如何决定一个功能的去留?"
    • 回答要点
      • 定义核心指标(如留存率、观看时长)
      • A/B 测试对比基线

四、面试准备资源推荐

  • 算法:LeetCode TikTok 标签(150+ 题)
  • 系统设计
    • 《Grokking the System Design Interview》
    • TikTok 工程博客 技术案例
  • 行为面试:TikTok Careers 页面 核心价值

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.