实现一个函数,用于寻找给定数组中的最大子数组和(动态规划)
实现一个函数,用于寻找给定数组中的最大子数组和
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;
}
}
偶做前堂客
祝你天天开心
在未知的时间
在未知的地点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了