求最大0矩陣

2021-06-18 09:26:24 字數 1054 閱讀 8723

#include

#define m 5

#define n 5

//說明:矩陣的行列必須對應m,m的值

struct node;

//取得單行最大值函式

int getdnmax(int dharr[n])

//水平面逐漸上公升

for(i=0;i<=m;i++) 

}   for(m=j;mfor(n=m+1;nwhile(d[n].tag==0&&n<=n-1)

if(n==n)

else

if(d[n].tag==1)

else}}

if(tag==1)

}for(k=0;kif(i==d[k].height)}}

//演算法限制最後一行資料無論多大都無法記錄下來,所以加上了一條判斷

if(d[n-1].height>max) max=d[n-1].height;

return max;//返回最大值

}void main(),,,,};//給的陣列

//*************************===

int resarr[m][n];

int arr[n];

int i,j,k;

int n,m;

int deep;

//獲取柱狀圖並組成資料陣列

for(i=0;i//求單行柱狀式

//行不變,列變化求值

for(m=0;mn=i;

deep=0;

while(arr[n][m]==0&&nn++;//行向下深入

//記錄深入程度

deep+=1;

}arr[m]=deep;//將向下縱深的值存入陣列

}max[log]=getdnmax(arr);

log+=1;}//

max=max[0];//求最大max值

for(n=1;nif(max[n]>max) max=max[n];

}printf("max-linyijuzhenmainji=[%d]\n",max);

ps:m是行,n是列

求矩陣的最大子矩陣面積

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

最大全0子矩陣問題

題意 給定乙個01矩陣,求 1.最大全0正方形面積 2.最大全0子矩陣面積 我是分割線 對於第一問,我們有o nm 的動態規劃解法 設f i j 表示以i,j為右下角的最大正方形邊長 正確性可以自己yy一下 對於第二問有許多o nm 的奇怪解法,具體可以參照2003年福州第三中學王知昆的 用極大化思...

1159 最大全0子矩陣

f i,j 表示以 i,j 為右下角的最大全0子矩陣的邊長 若a i j 1,f i,j 0 否則 f i,j min 1 這樣求得的是最大全0正方形子矩陣 要求長方形矩陣,上述思路行不通 假設以 i,j 為右下角的最大矩陣 12 它可能是3 4 4 3 2 6 6 2 1 12 12 1 按上述思...