首页 > 其他分享 >software pj2

software pj2

时间:2024-04-08 14:36:50浏览次数:19  
标签:arr curr int max 连续 数组 pj2 software

题目要求:

题目(1):

最大连续子数组和(最大子段和)

背景

问题: 给定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。

-- 引用自《百度百科》

代码

#pragma warning(disable:4996);

#include

#include

// 函数返回两个数中的较大值
int max(int a, int b) {
return (a > b) ? a : b;
}

// 计算最大连续子数组和
int maxSubArraySum(int arr[], int size) {
int ture_max = 0; // 最大连续子数组和初始化为0
int curr_max = 0; // 当前连续子数组和初始化为0

for (int i = 0; i < size; i++) {
    curr_max = max(arr[i], curr_max + arr[i]);
    ture_max = max(ture_max, curr_max);
}
return ture_max;

}

int main() {
int n;
printf("请输入整数代表输入数的个数:");
scanf("%d", &n);

int* arr = (int*)malloc(n * sizeof(int));
if (arr == NULL) {
    printf("内存分配失败\n");
    return 1;
}

printf("请输入数据:");
for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
}

int max_sum = maxSubArraySum(arr, n);
printf("最大连续子数组和为 %d\n", max_sum);

// 释放动态分配的内存
free(arr);

return 0;

}

解题思路

解决最大连续子数组和问题的算法,采用了动态规划的思想。具体而言,它在遍历数组时维护两个变量:curr_max 用于记录当前连续子数组的和,

true_max 用于记录最大连续子数组的和。在每一步迭代中,curr_max 被更新为当前元素与之前连续子数组和加上当前元素的较大值,而 true_max

则被更新为 curr_max 和 true_max 中的较大值。最终,true_max 将包含整个数组的最大连续子数组和。用户需要提供整数来表示输入数组的长度,

然后逐个输入数组元素。程序会计算出输入数组的最大连续子数组和,并将结果打印出来。这个程序提供了一个简单的用户界面,使用户能够输入数据并

查看结果,从而解决了这个常见的数组问题。

标签:arr,curr,int,max,连续,数组,pj2,software
From: https://www.cnblogs.com/xiaoxinfeng/p/18121050

相关文章

  • Cisco IOS XRv 9000 Router IOS XR Software 24.1.1(ED) - 服务提供商边缘虚拟路由器
    CiscoIOSXRv9000RouterIOSXRSoftware24.1.1(ED)-服务提供商边缘虚拟路由器CiscoIOSXRv9000路由器请访问原文链接:https://sysin.org/blog/cisco-ios-xrv-9000/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科IOS-XR简介CiscoIOSXRv9000路由......
  • Cisco ASR 1000 Router IOS XE Software Release Dublin-17.12.3 ED
    CiscoASR1000RouterIOSXESoftwareReleaseDublin-17.12.3EDCiscoASR1000SeriesAggregationServicesRouters请访问原文链接:https://sysin.org/blog/cisco-asr-1000/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org思科ASR1000系列聚合服务路由器Re......
  • SPPSVC.EXE(Software Protection Platform Service)是Windows操作系统中的一个进程,起源
    ‪C:\Windows\System32\sppsvc.exeSPPSVC.EXE(SoftwareProtectionPlatformService)是Windows操作系统中的一个进程,起源于微软公司为了保护其软件版权而开发的软件保护服务。这个服务主要负责验证Windows的许可证信息、管理软件激活状态以及执行与软件许可证相关的任务。SPPSVC.E......
  • Best AI Lead Generation Software Tools 2024
    Fromhttps://www.mapleadscraper.com/blog/best-ai-lead-generation-toolsExtractEmailsFromGoogleMapsWhyAILeadGenerationSoftwareisEssentialforYourBusinessMapLeadScraperhigh-qualityleadsiscrucialforbusinessestoclosedeals,increasereve......
  • 猫头虎分享已解决Bug || 服务版本冲突(Service Version Conflict):VersionMismatchError,
    博主猫头虎的技术世界......
  • Ubuntu.software.rabbitsvc 电脑死活没有右键rabbitsvc菜单+密码没有记住没法保存
    本来这个想发到每日运维的,但是觉得这个比较典型,适合拿来单独说。 现象:其他人电脑装rabbitsvc一次就成功,有的不成功重启一下就好了,或是使用nautilus-a重启一下文件管理器就好了,但是这一台就是不行,版本同样是20.04,太奇怪了小知识:ubuntu20.04有两种文件管理器,一个是nautil......
  • The First Software Engineering Homework
    这个作业属于哪个课程软件工程2024-双学位(广东工业大学)这个作业要求在哪里软件工程第一次作业这个作业的目标熟悉Markdown语法,熟悉git操作,学会写blog。其他参考文献目录1个人简历1.1自我介绍1.2当前水平2展望未来2.1阅读《构建之法》2.2未来规......
  • 关于AutoCAD反复弹窗Nonvalid Software Detected的解决办法
    事件起因:客户安装的CAD2020频繁弹窗NonvalidSoftwareDetected,报错内容:YOURACCESSISNOWBLOCKED 解决办法:在文件资源管理器中搜索路径C:\ProgramFiles\Autodesk\AutoCAD2020\Support\NewTabPage\config\ACAD\zh-CN(注意自己安装的版本和位置,我这里是2020版本安......
  • 52pj2024春节红包题-Android
    初级一小猫游戏,改一下判断将t.LOSE的值改为win,然后将casei.LOSE的代码段删掉,重新签名安装即可游戏结束会播放原神启动,播完会输出flag结果为flag{happy_new_year_2024}初级二flag是跟着签名走的,所以没法重新编译看代码可以看到是出金启动FlagActivity所以直接上obj......
  • update for ubuntu software version
    1.addedkeywget-O-https://apt.kitware.com/keys/kitware-archive-latest.asc2>/dev/null|sudoapt-keyadd-2.addedrepositoryU20:sudoapt-add-repository-r'debhttps://apt.kitware.com/ubuntu/focalmain'U18:sudoapt-add-repository-r�......