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

请实现 LeetCode 322 题:零钱兑换。给定不同面额的硬币 coins 和一个总金额 amount,编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。

携程后端开发消费品/零售编码实现问题拆解

考察说明

考察动态规划建模与边界处理能力

回答思路

  1. 正确理解状态定义 dp[i] 表示凑成金额 i 所需最少硬币数
  2. 能推导状态转移方程 dp[i]=min(dp[i-coin]+1),且 coin 需小于等于 i
  3. 正确处理边界条件:dp[0]=0,无法凑成时返回 -1
  4. 能给出 O(amount*coins) 时间复杂度和 O(amount) 空间复杂度分析
  5. 能考虑长整型溢出或大 amount 的性能优化
本题已收录答题指导

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

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