最大矩陣的邊界和和總和

2021-08-20 14:13:32 字數 1278 閱讀 8571

膜sen爺爺:

題意:給你乙個n*m的矩陣(1<=n,m<=1000)但是其中的正數最多100個其餘的全是0,

讓你求子矩陣最大的邊界和 

由於沒有oj判題,自己寫了乙個**就放在這裡了,望大家檢查

**:

#include using namespace std;

const int maxn = 1005;

const int maxv = 105;

const int inf = 0x3f3f3f3f;

int map[maxn][maxn],map1[maxv][maxv];

int h[maxv][maxv],l[maxv][maxv];

int n,m;

int pos1,pos2;

int vh[maxn],vl[maxn];

int main()

}} pos1 = 0;

for(int i = 1;i<=n;i++)}}

} for(int i = 1;i<=pos1;i++)

} int maxx = -inf;

for (int i = 1;i<=pos1;i++)

if(k == 1) else if(i == j)

else }}

}printf("%d\n",maxx);

} return 0;

}

最大子矩陣的總和:

**:

#include using namespace std;

const int maxn = 1005;

const int maxv = 105;

const int inf = 0x3f3f3f3f;

int map[maxn][maxn],map1[maxv][maxv];

int h[maxv],l[maxv];

int per[maxv][maxv];

int pos1,pos2;

int n,m;

int main()

}} pos1 = 0;

for(int i = 1;i<=n;i++)}}

} for(int i = 1;i<=pos1;i++)

} int maxx = -inf;

for(int i = 1;i<=pos1;i++) else

if(sum > maxx)}}

}printf("%d\n",maxx);

} return 0;

}

關於連續子陣列的最大和和最大積

find the contiguous subarray within an array containing at least one number which has the largest sum.for example,given the array 2,1,3,4,1,2,1,5,4 th...

邊界為1的最大子方陣

思路如下,先建立乙個三維輔助陣列,第一第二位存放矩陣的行和列的下標,第三位0時,存放 當前位置向右連續共有幾個1,第三位為1時,存放當前位置向下連續共有幾個1。由於矩陣的最後一列的元素,它的底下為空,所以要先單獨提取出來,為最後一行三維陣列第三個元素向右向左單獨賦值。此後的元素賦值類似最後一列,還是...

求矩陣的最大子矩陣面積

問題引入 求解直方圖中最大的矩形面積 核心思想 讓二維陣列轉換成多層的一維陣列,再根據一維陣列構建直方圖 主函式,讓二維陣列轉換成多層的一維陣列,再根據一維陣列構建直方圖 public intmaxrecsize int map int maxarea 0 int height newint map...