软件工程第二次作业总结
工作总结
在过去的一段时间里,我主要负责开发一个求解最大连续子数组和的函数。这个函数可以接收一个整数数组和数组的大小作为参数,并返回最大连续子数组的和。
我使用了一个简单而高效的算法来解决这个问题。首先,我初始化最大值和当前子数组和为数组的第一个元素。然后,我从数组的第二个元素开始遍历。在遍历的过程中,我不断更新当前子数组和,如果当前元素加上前面的和比当前元素本身大,则更新和为当前元素本身。同时,我也不断更新最大连续子数组和,如果当前和大于最大值,则更新最大值。
在处理完数组的所有元素后,我进行了一个额外的检查。如果最大连续子数组和为负数,我将其设置为0,以确保返回的结果不会是负数。
// 从数组的第二个元素开始遍历
for (int i = 1; i < numsSize; i++) {
// 如果当前元素加上前面的和比当前元素本身大,则更新和为当前元素本身
sum = (sum + nums[i] > nums[i]) ? sum + nums[i] : nums[i];
// 更新最大连续子数组和
max = (sum > max) ? sum : max;
}
// 如果最大连续子数组和为负数,则返回0
if (max < 0) {
return 0;
}
return max;
}
为了验证函数的正确性,我编写了四组测试用例,并在主函数中调用了这些测试用例。每个测试用例都包含一个整数数组和数组的大小,我将这些参数传递给函数,并打印出返回的最大连续子数组和。
通过运行这些测试用例,我可以确认函数的正确性。它能够正确地找到最大连续子数组和,并将其返回。
在开发过程中,我遵循了良好的编码规范,并使用了有意义的变量名和注释来提高代码的可读性。我还进行了适当的错误处理,以确保函数在面对异常情况时能够返回正确的结果。
总的来说,我对这个工作任务的完成感到满意。我相信这个函数能够在实际应用中发挥重要作用,并且具有良好的性能和可靠性。
浙公网安备 33010602011771号