public class FindGreatestSumArr { //输入整形数组,数组里有正数也有负数,数组中一个或连续的多个整数组成数组的子数组,求所有子数组中和的最大值 //例如输入的数组为{1,-2,3,10,-4,7,2,-5}和最大的子数组为{3,10,-4,7,2} public static void main(String[] args) { int[] arr={1,-2,3,10,-4,7,2,-5}; System.out.println(findGreatestSum(arr)); } public static int findGreatestSum(int[] arr){ //定义最大子数组的和为greateSum int greateSum=0; //定义子数组的和为geneSum int geneSum=0; for (int i = 0; i < arr.length; i++) { if(geneSum<0){ geneSum=arr[i]; }else { geneSum+=arr[i]; } if(geneSum>greateSum) greateSum=geneSum; } return greateSum; } } |
输入整形数组,数组里有正数也有负数,数组中一个或连续的多个整数组成数组的子数组,求所有子数组中和的最大值 ,例如输入的数组为{1,-2,3,10,-4,7,2,-5}和最大的子数组为{3,10,
最新推荐文章于 2024-05-03 12:01:46 发布