日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面积最大的全1子矩阵

發(fā)布時(shí)間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面积最大的全1子矩阵 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目來源:騰訊2012年暑期實(shí)習(xí)生招聘面試二面試題題目描述:

在一個(gè)M * N的矩陣中,所有的元素只有0和1,從這個(gè)矩陣中找出一個(gè)面積最大的全1子矩陣,所謂最大是指元素1的個(gè)數(shù)最多。

輸入:

輸入可能包含多個(gè)測試樣例。
對于每個(gè)測試案例,輸入的第一行是兩個(gè)整數(shù)m、n(1<=m、n<=1000):代表將要輸入的矩陣的大小。
矩陣共有m行,每行有n個(gè)整數(shù),分別是0或1,相鄰兩數(shù)之間嚴(yán)格用一個(gè)空格隔開。

輸出:

對應(yīng)每個(gè)測試案例,輸出矩陣中面積最大的全1子矩陣的元素個(gè)數(shù)。

樣例輸入:
2 2 0 0 0 0 4 4 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0
樣例輸出:
0 4

思路:
剛開始看這道題時(shí),想到的是用求最大子矩陣的和的方法,不過該算法的復(fù)雜度是O(n^3),顯然這道題不適合用這個(gè)方法。
這題只能用O(n^2)的方法才行。
這時(shí)可以一行一行地推,設(shè)置一個(gè)h[i]代表從第一行到當(dāng)前行,第i列的連續(xù)0的個(gè)數(shù)(當(dāng)前行第i列為0)。設(shè)置l[],r[]數(shù)組代表某行高度為>=h的左右邊界。
則對于
0?1?0?1?0
0?0?0?0?0
0?0?0?0?1
1?0?0?0?0
0?1?0?0?0
來說,h[]為別為
1 0 1 0 1
2 1 2 1 2
3 2 2 2 0
0 3 4 3 1
1 0 5 4 2
對每一列的h[]值可以更新左右邊界l[],r[]
每一行初始l[j],r[j]都設(shè)為j。對于每一行依次從左到右,如果h[j]<=h[l[j]-1],那么l[j]=l[l[j]-1].相應(yīng)的,對于每一行依次從右到左,如果h[j]<=h[r[j]+1],則r[j]=r[r[j]+1].
則對每一行的記錄的h[]和l[],r邊界可以計(jì)算出從以第i行為結(jié)尾的最大面積Si=h[j]*(r[j]-l[j]+1) (1<=j<=n)
最后,取這個(gè)面積的最大值。
代碼如下:
1 #include <stdio.h> 2 #include <string> 3 4 int m, n; 5 int data; 6 int h[1005], lw[1005], rw[1005]; 7 int ans; 8 9 int main(void) 10 { 11 while (scanf("%d%d", &m, &n) != EOF) 12 { 13 int i, j; 14 15 for (i = 1; i <= n; i ++) 16 h[i] = 0; 17 ans = 0; 18 for (i = 1; i <= m; i ++) 19 { 20 for (j = 1; j <= n; j ++) 21 { 22 lw[j] = rw[j] = j; 23 scanf("%d", &data); 24 if (data) 25 h[j] ++; 26 else 27 h[j] = 0; 28 } 29 for (j = 1; j <= n; j ++) 30 { 31 while (h[j] && lw[j] - 1 >= 1 && h[j] <= h[lw[j] - 1]) 32 lw[j] = lw[lw[j] - 1]; 33 while (h[n - j + 1] && rw[n - j + 1] + 1 <= n && h[n - j + 1] <= h[rw[n - j + 1] + 1]) 34 rw[n - j + 1] = rw[rw[n - j + 1] + 1]; 35 } 36 for (j = 1; j <= n; j ++) 37 if (h[j] && h[j] * (rw[j] - lw[j] + 1) > ans) 38 ans = h[j] * (rw[j] - lw[j] + 1); 39 } 40 printf("%d\n", ans); 41 } 42 return 0; 43 } View Code
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的面积最大的全1子矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产婷婷色一区二区在线观看 | 国产成人综合网 | 国产精品二三区 | 欧美激情电影一区二区 | 日日碰狠狠添天天爽无码av | 国产又黄又爽 | 超碰人人草 | 青青草视频在线看 | av电影网站在线观看 | 青青草视频播放 | 在办公室被c到呻吟的动态图 | 舐め犯し波多野结衣在线观看 | 噜噜av| 九九热精品在线视频 | 国产又粗又大又爽视频 | 伊人久色| 亚洲国产精品久久久久 | 欧美乱码精品一区二区三区 | 日韩在线视 | 国产最新av| 亚洲av无码一区二区三区在线观看 | 黄色片在线免费观看视频 | 裸体美女免费视频网站 | 欧美一级色图 | 国产情侣酒店自拍 | 老鸭窝成人 | 97久久人国产精品婷婷 | 午夜免费福利网站 | 夜夜操网站 | 欧美一级做 | 欧美久久久久 | 超碰一区二区 | 亚洲国产免费av | 国产精品视频你懂的 | 午夜羞羞羞 | 大地资源影视在线播放观看高清视频 | 红桃av| 亚洲国产精品无码久久久 | 秋霞午夜鲁丝一区二区老狼 | 成人免费福利 | 91干干干 | www三级免费 | 久久精品视| 中文字幕视频网 | 99999视频| 成人国产精品蜜柚视频 | 在线观看三级网站 | 国内精品嫩模av私拍在线观看 | 国产91久久婷婷一区二区 | 人妻少妇精品无码专区二区 | 26uuu精品一区二区在线观看 | 可以看黄色的网站 | 在线观看av中文字幕 | 91av在线视频播放 | 中文字幕有码视频 | 福利影院在线 | 欧美熟妇久久久久 | 亚洲无套| 亚洲av无码乱码在线观看性色 | 精品午夜一区二区 | 青青草原综合久久大伊人精品 | 丝袜一区二区三区 | 亚洲一区高清 | 久久精品网 | 精品少妇一区二区三区免费观看 | 午夜视频欧美 | 强伦人妻一区二区三区 | 久久久国产精品人人片 | 麻豆视频国产精品 | 一区二区三区四区视频在线观看 | √天堂8资源中文在线 | 澳门黄色网 | 成人在线免费观看网址 | 久久国产乱子伦免费精品 | 亚洲欧美经典 | 少妇裸体视频 | 91看片淫黄大片 | 国产白丝袜美女久久久久 | 国产精品大屁股白浆一区 | 色播五月综合 | 日韩一级黄 | 欧美三级不卡 | 午夜性色福利影院 | 欧美黄色三级 | 午夜视频在线网站 | 成人免费黄色大片v266 | 亚洲free性xxxx护士白浆 | 日本三级大片 | 免费中文字幕在线观看 | 久草免费在线视频 | 精品人妻一区二区三区四区 | 欧美一区三区二区在线观看 | 日本久久一区二区 | 91中文字幕在线视频 | 亚洲aa| 一本色道综合久久欧美日韩精品 | 毛片高清免费 | 黄色一级a毛片 | 亚洲一区精品在线观看 |