首页 > 其他分享 >最大连续子数组和的实现

最大连续子数组和的实现

时间:2024-04-09 23:12:56浏览次数:23  
标签:arr 实现 max sum int 连续 数组 input

题目:最大连续子数组和求解问题
一、背景:
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n
例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。
——引用自《百度百科》
二、解题
代码如下:

include <stdio.h>

include <stdlib.h>

int main()
{
int* arr;
int N = 0, input = 0, i = 0;
int sum = 0, max = 0;
scanf_s("%d", &N);
arr = (int*)malloc(sizeof(int) * N);
int minus = 0;
//对数组进行赋初值,并且记录负数个数
for (i = 0; i < N; i++)
{
scanf_s("%d", &input);
arr[i] = input;
if (input < 0)
{
minus++;
}
}
//如果全为负数,直接输出0,并结束程序
if (minus == N)
{
printf("0");
return 0;
}
//对最大子数组进行求解
max = arr[1];
for (i = 0; i < N; i++)
{
sum = sum + arr[i];
if (sum > max)
{
max = sum;
}
if (sum < 0)
{
sum = 0;
}
}
printf("%d", max);
return 0;
}
三、测试
我使用Visual Studio进行测试。测试的部分结果如下图。


标签:arr,实现,max,sum,int,连续,数组,input
From: https://www.cnblogs.com/lulxw/p/18125084

相关文章

  • 从二维数组到一维数组——探索01背包问题的动态规划优化
    文章目录题目前知背包问题二维dp数组一、思路二、解题方法三、Code一维dp数组一、思路二、解题方法三、Code总结本文将继续上一篇博客爬楼梯之后继续讲解同样用到了动态规划的01背包问题在解决动态规划问题时,我们经常面临着空间复杂度的挑战。01背包问题是一个......
  • Node.js毕业设计基于高校教师个人主页网站的设计与实现(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:在数字化时代,高校教师的个人形象和学术成果展示已经不仅限于传统的学术会议和纸质出版物。随着互联网技术的迅猛发展,越来越多的教师开始寻求在线平台来展示......
  • 4-1 Docker容器实现原理
    Docker容器实现原理主要是namespace和cgroup控制资源的隔离。虽然Docker可透过Namespace的方式分隔出看似是独立的空间,然而Linux内核(Kernel)却不能Namespace,所以即使有多个Container,所有的systemcall其实都是通过主机的内核处理,这便为Docker留下了不可否认的安全问题。虚拟机......
  • 导出和导入UEFI启动项列表,您可以使用 bcdedit 命令,并结合使用输出重定向来实现
    导出和导入UEFI启动项列表,您可以使用bcdedit命令,并结合使用输出重定向来实现。以下是一个示例批处理脚本,演示如何导出和导入UEFI启动项列表:导出UEFI启动项列表[email protected]/enumfirmware>UEFI_boot_entries.txt......
  • 后端接口实现
    所花时间:6小时代码量:600搏客量:1packagecom.example.metroinfo.controller;importcom.example.metroinfo.model.MetroSystem;importcom.example.metroinfo.service.MetroInfoService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springf......
  • consul:啥?我被优化没了?AgileConfig+Yarp替代Ocelot+Consul实现服务发现和自动网关配置
    现在软件就业环境不景气,各行各业都忙着裁员优化。作为一个小开发,咱也不能光等着别人来优化咱,也得想办法优化下自己。就拿手头上的工作来说吧,我发现我的微服务应用里,既有AgileConfig这个日志组件,又有一个Consul服务发现组件。本来吧他俩也没啥事,各干个的。但是,我在操作AgileConfig......
  • Java基于微信小程序的校园外卖平台设计与实现,附源码
    博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • leetcode热题HOT 208. 实现 Trie (前缀树)
    一、问题描述:Trie(发音类似“try”)或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现Trie类:Trie()初始化前缀树对象。voidinsert(Stringword)向前缀树中插入字符串wor......
  • 基于JAVA Springboot + Vue 前端后分离 实现【考研资讯平台】(内附设计LW + PPT+ 源码
    项目名称项目名称:考研资讯平台项目技术栈该项目采用了以下核心技术栈:后端框架/库:SpringBoot数据库:MySQL前端技术:Vue.js(前后端分离)项目展示5.1学生前台功能模块5.1.2首页在系统首页可以查看以下内容:首页考研资讯报考指南资料信息论坛信息我的跳转到后台购物......
  • 基于JAVA Springboot + Vue 前端后分离 实现【教师人事档案管理系统】(内附设计LW + PP
    项目名称项目名称:教师人事档案管理系统项目技术栈该项目采用了以下核心技术栈:后端框架/库:Java数据库:MySQL前端技术:Vue.js(前后端分离)开发工具:Eclipse项目展示5.1前台功能模块前台首页在教师人事档案管理系统首页可以查看以下内容:首页培训信息系统公告个人中心......