题解 | #用两个栈实现队列#
连续子数组的最大和
http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484
using System;
using System.Collections.Generic;
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型
*/
public int FindGreatestSumOfSubArray (List<int> array) {
// write code here
// List<int> dp = new List<int>(array.Count);
// dp.Add(array[0]);
// int max = dp[0];
// for(int i=1; i<array.Count; i++){
// dp.Add(Math.Max(dp[i-1]+array[i], array[i]));
// max = Math.Max(max, dp[i]);
// }
// return max;
int dp = array[0];
int max = dp;
for(int i=1; i<array.Count; i++){
dp = Math.Max(dp+array[i], array[i]);
max = Math.Max(max, dp);
}
return max;
}
}
using System.Collections.Generic;
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型
*/
public int FindGreatestSumOfSubArray (List<int> array) {
// write code here
// List<int> dp = new List<int>(array.Count);
// dp.Add(array[0]);
// int max = dp[0];
// for(int i=1; i<array.Count; i++){
// dp.Add(Math.Max(dp[i-1]+array[i], array[i]));
// max = Math.Max(max, dp[i]);
// }
// return max;
int dp = array[0];
int max = dp;
for(int i=1; i<array.Count; i++){
dp = Math.Max(dp+array[i], array[i]);
max = Math.Max(max, dp);
}
return max;
}
}