1.实践题目名称:最大子段和 2.问题描述:给定n个整数(可能为负数)组成的序列a[1]a[2]a[3]…a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 输入格式: 输入有两行: 第一行是n

算法实践报告第三章 1.实践题目名称 7-1 最大子段和 2.问题描述 给定n个整数(可能为负数)组成的序列a[1]a[2]a[3]…a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 3.算法

1.1 问题描述: 最大子段和:给定n个整数(可能为负数)组成的序列a[1]a[2]a[3]…a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。 1.2 算法描述: #include #de

1.实践题目名称 7-1 最大子段和 2.问题描述 给定n个整数(可能为负数)组成的序列a[1]a[2]a[3]…a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。1 问题描述 7-3 最低通行费 (25 分) 一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。1 问题分析 1.1 问题概述 给定一段序列,子段和为其中一段子序列相加所得的和数,求最大子段和数。 1.2 算法实现 根据动态规划方程 dp[i] = max(dp[i - 1] k); 其中 k 表示从0到 i 的相加的和大于0的子段,若 k 小于0则令 k 等于当前位置的数值,并且重新计算子