求一个矩阵中最大的二维矩阵 【微软面试100题 第三十五题】
题目要求:
求一个矩阵中最大的二维矩阵(元素和最大).如:
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是4 5
5 3.
要求:1)写出算法;2)分析时间复杂度;3)写出相关代码。
参考资料:编程之美 2.15
题目分析:
从矩阵开头逐个求2*2矩阵的和,找出最大,时间复杂度O(M*N),M/N为行/列;
代码实现:
#include <iostream> using namespace std; const int M = 3; const int N = 5; int FindMaxMatrix(int a[][N],int &res_i,int &res_j); int main(void) { int res_i,res_j; int a[M][N] = {{1,2,0,3,4},{2,3,4,5,1},{1,2,5,3,0}}; int max = FindMaxMatrix(a,res_i,res_j); cout << "The max matrix is:" << endl << a[res_i][res_j] << " " ; cout << a[res_i][res_j+1] << endl<<a[res_i+1][res_j] << " " << a[res_i+1][res_j+1] << endl; cout << "and the max sum is:" << max << endl; return 0; } int FindMaxMatrix(int a[][N],int &res_i,int &res_j) { int maxSum = INT_MIN,sum; for(int i=0;i<M-1;i++) for(int j=0;j<N-1;j++) { sum = a[i][j]+a[i+1][j]+a[i][j+1]+a[i+1][j+1]; if(maxSum < sum) { maxSum = sum; res_i = i; res_j = j; } } return maxSum; }
很多时候不是我们做不好,而是没有竭尽全力......
分类:
【微软面试100题】
posted on 2014-10-31 09:32 tractorman 阅读(355) 评论(1) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?