首页 > 代码库 > 求所有子数组的和的最大值
求所有子数组的和的最大值
1.源代码
package 加减乘除; import java.util.Scanner; public class Max1 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("输入个数:"); int k = in.nextInt(); int[] shu = new int [k];//定义数组 Scanner scanner=new Scanner(System.in); System.out.println("请输入"+k+"个整数:"); for(int i=0;i<k;i++){ shu[i]=in.nextInt(); } System.out.println("数组中连续数的最大值为:"+MaxSum(shu,k)); } static int MaxSum(int[] arr,int k) { int Sum=0; int maxSum=0; int len=k; int d; int i; int j; for(j=0;j<len;j++) { for (i=j;i<len+j;i++) { if(i>len-1) d=i-len; else d=i; Sum+=arr[d]; if(Sum<0) { Sum=0; } if(Sum>maxSum) { maxSum=Sum; } } Sum=0; } if(maxSum==0) { for(i=0;i<len;i++) { if(i==0) { maxSum=arr[i]; } if(arr[i]>maxSum) { maxSum=arr[i]; } } } return maxSum; } }
2.结果截图
3.设计思想
遍历计算所有情况的值来进行比较,输出最大的值
4.出现的问题
第一个数字和最后一个数字不能连在一起求和,没有算上前面的数
5.总结
最后功能成功实现,要进行两次for循环来计算遍历所有子数组的和求出最大值
求所有子数组的和的最大值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。