今日总结:3.11课堂小测(一维数组的最大子数组的和(整数))
package test;
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i,j,k=0,z=0,flag=0,max=0;
int sum=sc.nextInt();
int[] array=new int[sum];
for(i=0;i<sum;i++)
{
array[i]=sc.nextInt();
}
max=array[0];
for(i=0;i<sum;i++)
{
for(j=i;j<sum;j++)
{
k+=array[j];
if(k>max)
{
flag=1;
max=k;
}
}
k=0;
}
System.out.println(max);
}
}
本次时间复杂度为 n^2
思路:先大循环进行从首到尾的占位,及内循环的起始位置。在内循环中,从首位到末尾之前的每一位进行求和,得出最大的值交给max。再进行大循环的占位(改变内循环的起始位置)。这样可以得出所有的求和的值,最终得出子数组最大的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端