作业总结

 

 不考虑时间复杂度的话,这题是比较简单的

import java.util.Random;
import java.util.Scanner;

public class other {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);

System.out.println("请输入数组长度:");
int num=sc.nextInt();
int[] n= new int[100];//初始数组
int[] x= new int[100];
int y;


for(int i=0;i<num;i++){
n[i]=sc.nextInt();
}

for(int i=0;i<num;i++){
for(int j=0;j<num;j++){
if(n[j]>0){
x[i]+=n[j];
}
if(x[i]>0&&n[j]<=0){
int b = 0;
for(int k=j;k<num;k++){
b+=n[k];//判断后面的
if(b>0){
x[i]+=b;
j=k;
break;
}
}
i++;
}
}
break;
}
y=0;

for(int i=0;i<num;i++){//将每个数组进行比较
if(x[i]>y){
y=x[i];
}
}
System.out.println("最大子数组的和:"+y
);
}


}

 

判断第i个数是否是正的,如果是正的就加上,如果是负的,就继续判断后面的数相加是否是正的,正的就加上。

最后比较单个数组元素和所求值的大小。

posted @   信2005-2赵磊  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示