定义一个方法MaxThree,用来求三个整数之间的最大值,在主程序调用这个方法,并将传入的三个整数最大值输出
int MaxThree(int a, int b, int c)
{
int[] arr = new int[] { a,b,c };
return arr.Max();
}
主程序:
int a = 2, b = 5; c = 1;
Console.WriteLine( MaxThree(a,b,c));
这是一道非常经典的题目,是一道非常基础的动态规划题目,假设 dp[i] 为以第 i 个元素为结尾的连续序列的最大和,那么,有如下动态转移方程:
dp[i] = max(dp[i-1] + nums[i], nums[i])
上述方程代表以第 i 个元素为结尾的连续序列的最大和等于:以第 i-1 个元素为结尾的连续序列的最大和加上第 i 个元素值和第 i 个元素值的最大值。
因为本题中仅仅是求一个最大值,故可以把转移方程改为:sum = max(sum + nums[i], nums[i])。