分治法——最大子列和问题
最大子列和问题
- 题目
- 答案
- 参考
题目
答案
#include<stdio.h>
int Max(int a,int b,int c)
{if(a>b){if(a>c) return a;else return c; } else{if(b>c) return b;else return c;}
} int apart(int a[],int left,int right)
{int left_max,right_max;int left_sum=0,right_sum=0;int left_sum_max=0,right_sum_max=0;int i,center;if(left==right){if(a[left]>0) return a[left];else return 0;}center=(left+right)/2;left_max=apart(a,left,center);right_max=apart(a,center+1,right);for(i=center;i>=left;i--){left_sum+=a[i];if(left_sum>left_sum_max) left_sum_max=left_sum;}for(i=center+1;i<=right;i++){right_sum+=a[i];if(right_sum>right_sum_max) right_sum_max=right_sum;}return Max(left_max,right_max,left_sum_max+right_sum_max);
}int main()
{int n,i;scanf("%d",&n);int a[n];for(i=0;i<n;i++)scanf("%d",&a[i]);printf("%d",apart(a,0,n-1));
}
参考
https://blog.csdn.net/qq_31672701/article/details/88787640
我对于其中的变量做了一定的修改,每个变量的多个含义之间用下划线分隔开,这样会显得代码更有层次一些
分治法——最大子列和问题相关推荐
- 分治法解决最大子数组问题
分治法解决最大子数组问题 参考文章: (1)分治法解决最大子数组问题 (2)https://www.cnblogs.com/Christal-R/p/Christal_R.html (3)https: ...
- 7-1 最大子列和问题 (20 分)
7-1 最大子列和问题 (20 分) 给定K个整数组成的序列{ N1, N2 , -, NK },"连续子列"被定义为{ Ni , Ni+1 , -, Nj } ...
- 7-142 最大子列和问题 (20 分)
7-142 最大子列和问题 (20 分) 给定K个整数组成的序列{ N1, N2, ..., NK },"连续子列"被定义为{ Ni, Ni+1, ..., Nj }, ...
- 【算法】_012_最大子数组_分治法
1.009_maxsubarr_divcon.h /*************************************************************** *版权所有 (C)2 ...
- 7-4 最大子列和问题 (20 分)
7-4 最大子列和问题 (20 分) 给定K个整数组成的序列{ N 1, N 2 , -, N K },"连续子列"被定义为{ N i, N i+1 , -, N j },其中 ...
- 01-复杂度1 最大子列和问题 (20 分)
给定K个整数组成的序列{ N1, N2, ..., NK },"连续子列"被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤ ...
- 递归算法(二)-分治法
分治法 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.即一种分目标完成程序算法,简单问题可用二分法完成. ...
- 【数据结构笔记03】算法实例:最大子列和
本次笔记内容: 1.3.1 应用实例_算法1&2 1.3.2 应用实例_算法3 1.3.3 应用实例_算法4 文章目录 最大子列和问题 算法1:把所有子列拿出来比较(暴力法) 算法2:不做重复 ...
- PTA 实例1.1:最大子列和问题
实例1.1 最大子列和问题 分数 20 作者 DS课程组 单位 浙江大学 给定K个整数组成的序列{ N1, N2, ..., NK },"连续子列"被定义为{ Ni, Ni ...
- python矩阵乘法分治算法_矩阵乘法的Strassen算法详解 --(算法导论分治法求矩阵)...
1 题目描述 2 思路分析 3 解法 4 小结 1 题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 2 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数 ...
最新文章
- 用javascript进行一个简单的机器学习小实例
- erdas叠加显示_ERDAS操作技巧
- [云炬创业管理笔记]第二章测试4
- python setup.py 指定文件到指定路径_linux下python安装到指定目录
- 字符的用意_北辰的符号意义 阅读答案
- 耗尽linux内存脚本,Linux下swap耗尽该怎么办?如何释放swap?
- python 视频分析_成为视频分析专家:自动生成集锦的方法(Python实现)
- (日常搬砖)Linux常用指令记录(更新ing)
- iOS开发UI篇--仿射变换(CGAffineTransform)使用小结
- Visual Studio 2022 MFC 学习笔记(一):常见问题汇总
- 从无到有构建计算机网络
- dx11学习笔记-3.三维空间变换(自己整理,基础详尽)
- 用计算机怎样搜wifi网,笔记本电脑搜索不到无线网络(Wifi)怎么办
- 11083 旅游背包(优先做)
- 访问网站php直接下载,访问php文件自动下载及502问题-Go语言中文社区
- Mac和iPhone的浏览器接力功能。如何不利用safari接力。
- STW43NM60ND意法车规MOS管\原装现货ASEMI代理
- 狡猾的商人[HNOI2005]
- 单片机用途有哪些?学会了单片机能做什么工作?
- 浅谈征信大数据与撸贷