题目
对于最大子段和问题说法正确的是A. 空间复杂度:O(logn)分治法:O(n)B. 可以用分治法求解,也可以用动态规划求解C. 算法思想:分治法:将问题分解为规模更小的子问题,分别动态规划:利用问题的最优子结构,通过状态转移法:O(nlogn)D. 时间复杂度:空间复杂度:动态规划:O(n)
对于最大子段和问题说法正确的是
A. 空间复杂度:O(logn)分治法:O(n)
B. 可以用分治法求解,也可以用动态规划求解
C. 算法思想:分治法:将问题分解为规模更小的子问题,分别动态规划:利用问题的最优子结构,通过状态转移法:O(nlogn)
D. 时间复杂度:空间复杂度:动态规划:O(n)
题目解答
答案
B. 可以用分治法求解,也可以用动态规划求解
解析
本题考查最大子段和问题的算法特性,解题思路是对每个选项涉及的算法特性进行分析判断。
- 选项A:
- 分治法的空间复杂度是 $O(n)$,而不是 $O(logn)$。
- 动态规划的空间复杂度也是 $O(n)$。所以选项A错误。
- 选项B:
- 最大子段和问题既可以用分治法求解,也可以用动态规划求解。分治法是将问题分解为规模更小的子问题,分别求解;动态规划是利用问题的最优子结构,通过状态转移求解。所以选项B正确。
- 选项C:
- 分治法的时间复杂度是 $O(nlogn)$,而不是 $O(n)$。
- 动态规划的时间复杂度是 $O(n)$,而不是 $O(nlogn)$。所以选项C错误。
- 选项D:
- 该选项表述混淆了时间复杂度和空间复杂度。动态规划的时间复杂度是 $O(n)$,空间复杂度也是 $O(n)$。所以选项D错误。