一维数组最大子数组(一)
题目:返回一个整数数组中最大子数组的和。
要求: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。
思路:把每个和放在二维数组中,找出最大数根据i和j的关系就找到最大数组,不过时间复杂度是o(n^2),还在试着用链表的方式可以使他的时间复杂度是o(n^2)输出
代码:
#include <iostream> #define N 8 using namespace std; void main() { int fuhao,a[N],b[N][N]={0},k=0; int i,j,I,J; for (i=0;i<N;i++) { fuhao=rand()%2; a[i]= (fuhao==0) ? -rand()%100:rand()%100; cout<<"a["<<i<<"]="<<a[i]<<endl; } for (j=0;j<N;j++) { b[0][j]=a[j]; } for(j=0;j<N;j++) { for (i=1;i<N-j;i++) { b[i][j]=a[i+j]+b[i-1][j]; } } for (i=0;i<N;i++) { for (j=0;j<N;j++) { if(b[i][j]>k) { k=b[i][j]; I=i; J=j; } } } cout<<endl; cout<<"k="<<k<<endl; cout<<"最大子数组为:"<<endl; for (i=0;i<I+1;i++,J++) { cout<<J<<" "<<a[J]<<endl; } cout<<endl; }
截图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理