实现一个函数,用于寻找给定数组中的最大子数组和(动态规划)
实现一个函数,用于寻找给定数组中的最大子数组和
public class MaxSubArraySum {
// 主函数,用于测试
public static void main(String[] args) {
int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
System.out.println("最大子数组和为: " + findMaxSubArraySum(nums));
}
/**
* 寻找给定数组中的最大子数组和
* @param nums 整型数组
* @return 最大子数组的和
*/
public static int findMaxSubArraySum(int[] nums) {
if (nums == null || nums.length == 0) {
return 0; // 如果数组为空或长度为0,返回0
}
int currentSum = nums[0]; // 当前子数组的和初始化为第一个元素
int maxSum = nums[0]; // 最大子数组和初始化为第一个元素
for (int i = 1; i < nums.length; i++) { // 从第二个元素开始遍历
// 更新当前子数组的和,如果加上当前元素比当前元素本身小,则重新开始计数
currentSum = Math.max(nums[i], currentSum + nums[i]);
// 更新最大子数组和,如果当前子数组和比之前记录的最大和还要大,则更新最大和
maxSum = Math.max(maxSum, currentSum);
}
return maxSum;
}
}
偶做前堂客
祝你天天开心
在未知的时间
在未知的地点