后端岗位面试题更新 2026-08-05

给定一个 m x n 的二维矩阵,每个格子要么是 'A'(表示苹果),要么是 '.'(表示空),需要将矩阵切成 k 块,每次切割必须沿着行或列从边缘到边缘切一刀,且每块必须至少包含一个苹果。求切成 k 块的方案数,结果对 10^9+7 取模。请给出实现思路和代码。

快手后端开发互联网/IT编码实现问题拆解技术原理

考察说明

考察动态规划与二维前缀和的综合应用,以及经典Hard问题的推导能力

回答思路

  1. 能识别使用动态规划dp[k][i][j]表示切分剩余子矩阵成k块的方案数
  2. 利用二维前缀和快速判断任意子矩阵是否含苹果
  3. 正确枚举水平切和垂直切的切割位置,并转移状态
  4. 最终对结果取模,并处理边界状态初始化
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。