当前位置: 首页 > news >正文

连续子数组的最大和

问题描述:

输入一个整型数组,数组里有正数也有负数。求连续子数组中的最大和为多少。

举例:

数组:arry={1 , 2 ,-5 , 4 , 1 ,-2}

输出:5,数组中连续的位置相加最大值为5, 4+1

方法:

设立一个dp数组存储当前最大和状态。初始时将数组对应数字填入dp中。然后从头开始遍历dp,如果前一位dp[i]中保存的数大于0,则更新当前的dp值。更新结果是当前dp的值加上前一个dp的值。

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main() {int data[81], dp[81];int i, num, max = 0;printf("please input num:\n");scanf("%d", &num);printf("please input data:\n");for (i = 0; i < num; i++) {scanf("%d", &data[i]);}for (i = 0; i < num; i++) {//将data的数据复制到dp中dp[i] = data[i];}for (i = 1; i < num; i++) {if (dp[i - 1] > 0) {//如果dp前一个位置的值大于0,则与当前位置相加,更新当前位置的值dp[i] = dp[i] + dp[i - 1];}}for (i = 0; i < num; i++) {if (max < dp[i]) {max = dp[i];}}printf("the maximum sum of continuous subarrays is %d\n", max);return 0;
}

运行结果截图:

如果该内容对你有小小的帮助,请给我点个赞!谢谢。

http://www.lryc.cn/news/324345.html

相关文章:

  • Photoshop 工具使用详解(全集 · 2024版)
  • C++函数返回机制,返回类型
  • [linux] Key is stored in legacy trusted.gpg keyring
  • 阿里云部署OneApi
  • MapReduce学习问题记录
  • Elasticsearch优化
  • 【Redis知识点总结】(六)——主从同步、哨兵模式、集群
  • Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
  • 【硬件设计】以立创EDA举例——持续更新
  • Chain of Note-CoN增强检索增强型语言模型的鲁棒性
  • Uniapp 的 uni.request传参后端
  • 数据可视化-ECharts Html项目实战(5)
  • C++学习之旅(二)运行四个小项目 (Ubuntu使用Vscode)
  • 数据分析与挖掘
  • Maxwell监听mysql的binlog日志变化写入kafka消费者
  • Kafka系列之:Kafka Connect REST API
  • DC-4靶机
  • ideaSSM 高校公寓交流员管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目
  • Android studio添加阿里云仓库
  • 每天一个数据分析题(二百二十)
  • Centos上安装Harbor并使用
  • 工作需求,Vue实现登录
  • 【生产力】Mac 窗口布局工具 Magnet
  • Linux的相关指令总结
  • HTTPS 加密原理
  • 【数据挖掘】实验4:数据探索
  • PTA后缀式求值(整型版)
  • FPGA与以太网相关接口知识
  • 使用git+ssh访问github,避免下载资源失败
  • cookie、session和token的区别