namespace 最大子数组
{
public class Program
{
public int maxSubArray(int[] A, int n)
{
int cursum = A[0];
int maxsum = A[0];
for (int i = 0; i < n; i++)
{
if (cursum < 0)
cursum = 0;
cursum += A;
if (cursum > maxsum)
maxsum = cursum;
}
return maxsum;
}
static void Main(string[] args)
{
int[] A = { -2, 5, 3, -6, 4, -8, 6 };
Program fuc = new Program();
Console.WriteLine(fuc.maxSubArray(A, A.Length));
Console.ReadKey();
}
}
} 直接右键,点创建单元测试
保持默认就好
添全测试用的代码,可以写好多组。
[TestMethod()]
public void maxSubArrayTest1()
{
Program test = new Program();
int[] A = { -2, 5, 3, -6, 4, -8, 6 };
Assert.AreEqual(test.maxSubArray(A, A.Length), 8);
}
[TestMethod()]
public void maxSubArrayTest2()
{
Program test = new Program();
int[] A = { 0,0,0 };
Assert.AreEqual(test.maxSubArray(A, A.Length), 0);
} Assert.AreEqual(test.要测试的函数(传参), 期待得到的结果);
总共写了5组测试用例:
int maxSubArray(int *A, int n)
{
cursum = A[0];
maxsum = A[0];
for i = 1 to n-1
if cursum < 0
cursum = 0;
cursum += A;
if cursum > maxsum
maxsum = cursum;
return maxsum;
}
本文代码下载:https://coding.net/u/dreamtofly/p/MaxSubArraySum--Unit-test/git