✏️ 纠错
第 186 题 / 共 201 题
10. 以下关于贪心算法和动态规划的说法中,错误的是()。
你真棒!
📝 题目解析
答案:D
知识点:贪心法与动态规划的特性
解析:动态规划的时间复杂度取决于状态数和转移复杂度,某些问题(如旅行商的动态规划解法)时间复杂度为指数级(D错误);A、B、C均正确。
A. 贪心算法需满足“贪心选择性质”(局部最优→全局最优)和“最优子结构”,很多问题不满足(如0-1背包问题),因此“不一定适用”,正确。
B. 贪心算法通常是线性或线性对数时间(如哈夫曼编码),而动态规划常需遍历子问题(如背包问题为O(nV)),因此贪心效率通常更高,正确。
C. 动态规划的“递归(记忆化)”和“递推”本质都是遍历所有子问题,仅实现方式不同(递推避免重复计算),多数情况下时间复杂度一致(如斐波那契数列两者均为O(n)),正确。
D. 动态规划的时间复杂度由“子问题数量”和“子问题处理时间”决定。部分问题的子问题数量是指数级(如“枚举所有子集”的动态规划,子问题数量为2^n),此时时间复杂度为指数级,并非“一定是多项式”,错误。
知识点:贪心法与动态规划的特性
解析:动态规划的时间复杂度取决于状态数和转移复杂度,某些问题(如旅行商的动态规划解法)时间复杂度为指数级(D错误);A、B、C均正确。
A. 贪心算法需满足“贪心选择性质”(局部最优→全局最优)和“最优子结构”,很多问题不满足(如0-1背包问题),因此“不一定适用”,正确。
B. 贪心算法通常是线性或线性对数时间(如哈夫曼编码),而动态规划常需遍历子问题(如背包问题为O(nV)),因此贪心效率通常更高,正确。
C. 动态规划的“递归(记忆化)”和“递推”本质都是遍历所有子问题,仅实现方式不同(递推避免重复计算),多数情况下时间复杂度一致(如斐波那契数列两者均为O(n)),正确。
D. 动态规划的时间复杂度由“子问题数量”和“子问题处理时间”决定。部分问题的子问题数量是指数级(如“枚举所有子集”的动态规划,子问题数量为2^n),此时时间复杂度为指数级,并非“一定是多项式”,错误。