一个矩阵中最大的二维矩阵(元素和最大)
2016-05-17 18:27
393 查看
#include <stdio.h> #include <stdlib.h> int max_matrix(int a[][5], int n) { int i = 0, j = 0, k = 0; int max_sum = 0; int *b = (int *)malloc(sizeof(int) * n); for(i = 0; i < n; i++) { for(j = 0; j < n; j++) b[j] = 0; for(j = i; j < 3; j++) { for(k = 0; k < n; k++) b[k] += a[j][k]; int sum = maxSubArraySum(b, n); if(sum > max_sum) max_sum = sum; } } free(b); b = NULL; return max_sum; } int maxSubArraySum(int* a, int n) { int sum = 0; int tmp = 0; int i = 0; for(i = 0; i < n; i++) { if(tmp < 0) tmp = a[i]; else tmp += a[i]; if(sum < tmp) sum = tmp; } return sum; } int main(void) { int a[3][5] = { { -1, -2, 0, -3, -4}, { -2, -3, 4, 5, -1}, { -1, -1, 5, 3, 0} }; int nResult = max_matrix(a, 5); printf("nResult = %d\n", nResult); return 0; /* 打印 nResult = 17 网上给的说明不对,如果没有负号,最大值应该为35,即整个二位结构 */ }
相关文章推荐
- hibernate中HQL语句
- MongoDB的界面操作工具之rockmongo
- 制作子弹痕迹(到shareMaterial)-Unity
- GBDT(MART) 迭代决策树入门教程 | 简介
- 利用AJAX实现WordPress中的文章列表及评论的分页功能
- RabbitMQ (一)第一个hello world
- SCRUM:第一、二天任务实现情况
- CODEVS 1258 关路灯
- Length of Last Word(easy)
- Apache Prefork、Worker和Event三種MPM分析
- Xcode使用-快捷键
- Scrum4.0+5.0
- [转]Unity3D新手引导开发手记
- 使用nohup进入后台,nohup.out内信息显示不及时
- ZigZag Conversion
- POJ 3264 Balanced Lineup
- CocoaPods pod install/pod update更新慢的问题
- Quartz作业调度,不再让我们烦恼
- 分数加减的简单运算
- qt的一些基础知识