整形数组中最大子数组地和
package max;
import java.util.Scanner;
public class max {
public static void main(String args[])
{
Scanner s=new Scanner(System.in);
System.out.println("数组长度:");
int sum=s.nextInt();
int []a=new int[sum];
System.out.println("请输入"+sum+"个数:");
for(int i=0;i<sum;i++)
{
a[i]=s.nextInt();
}
s.close();
int sum1=0;
for(int i=1;i<=sum;i++)
{
sum1=sum1+i;
}
int [] b=new int[sum1];
int temp1=0;
for(int i=0;i<sum;i++)
{
int temp=0;
for(int k=0;k<sum-i;k++)
{
temp=temp+a[i+k];
b[temp1]=temp;
temp1++;
}
}
for(int i=0;i<sum1-1;i++)
for(int k=0;k<sum1-1-i;k++)
{
if(b[k]<b[k+1])
{
int temp2=b[k];
b[k]=b[k+1];
b[k+1]=temp2;
}
}
System.out.println("最大子数组之和为"+b[0]);
}
}
一直想不出来如何求这个最大子数组,即使不用O(n)也不会,后面听了同学的讲解还是不太会,人太笨,最后用的解决办法并不是最优解。
截图:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步