✏️ 纠错
第 186 题 / 共 251 题
第10题 下面的C++代码,用于求一系列数据中的最大值。有关其算法说法错误的是( )。
int find_max(const vector<int>& nums) {
    if (nums.empty()) {
        throw invalid_argument("输入数组不能为空");
    }

    int max_value = nums[0];
    for (int num : nums) {
        if (num > max_value) {
            max_value = num;
        }
    }
    return max_value;
}
📝 题目解析

答案:D

知识点:迭代算法的概念,时间复杂度分析,与递归算法的比较

解析:A正确,该算法用循环迭代实现;B正确,需遍历所有元素,复杂度O(n);C正确,递归会产生栈开销,迭代不会;D错误,上一题的分治算法时间复杂度是O(logn),因此两者时间复杂度不同,D说法错误。