给定一个二维数组,每个子数组长度可能不同,如何实现回溯算法生成所有可能的组合,例如输入 [[1,2,3],[4,5],[6,7,8]] 输出 [[1,4,6],[1,4,7],[1,4,8],...]?请写出代码思路并分析复杂度。
考察说明
考察回溯算法的递归模板、路径构建与复杂度分析能力
回答思路
- 说明递归终止条件:路径长度等于子数组个数
- 说明每层遍历当前子数组的每个元素并加入路径
- 说明递归后撤销选择(回溯)的写法
- 分析时间复杂度为 O(所有子数组长度乘积),空间为 O(子数组个数)
- 能写出清晰的递归函数伪代码或代码
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。