750 角矩形的數量

2021-10-24 18:44:34 字數 1583 閱讀 4994

題目描述:

給定乙個只包含 0 和 1 的網格,找出其中角矩形的數量。

乙個「角矩形」是由四個不同的在網格上的 1 形成的軸對稱的矩形。注意只有角的位置才需要為 1。並且,4 個 1 需要是不同的。

示例 1:

輸入:grid =

[[1, 0, 0, 1, 0],

[0, 0, 1, 0, 1],

[0, 0, 0, 1, 0],

[1, 0, 1, 0, 1]]

輸出:1

解釋:只有乙個角矩形,角的位置為 grid[1][2], grid[1][4], grid[3][2], grid[3][4]。

示例 2:

輸入:grid =

[[1, 1, 1],

[1, 1, 1],

[1, 1, 1]]

輸出:9

解釋:這裡有 4 個 2x2 的矩形,4 個 2x3 和 3x2 的矩形和 1 個 3x3 的矩形。

示例 3:

輸入:grid =

[[1, 1, 1, 1]]

輸出:0

解釋:矩形必須有 4 個不同的角。

網格 grid 中行和列的數目範圍為 [1, 200]。

每個網格 grid[i][j] 中的值不是 0 就是 1 。

網格中 1 的個數不會超過 6000。

方法1:

主要思路:

(1)暴力求解;

class

solution

int count=0;

//最後一行和最後一列可以不判斷

int len_row=grid.

size()

-1;int len_col=grid[0]

.size()

-1;//遍歷陣列中的元素

for(

int i=

0;i++i)}}

}}}}

return count;}}

;

方法2:

主要思路:

(1)找出固定的兩行之間,對應的位置的元素值為1的個數,則統計為豎直邊的個數增加1;

(2)則這兩行之間可能形成的矩形的數量就是隨機的從這些豎直邊抽取兩個邊的組合數;

(3)統計種兩行之間的組合數,即為結果;

class

solution

int count=0;

int len_row=grid.

size()

;int len_col=grid[0]

.size()

;//兩個外層迴圈是選擇的兩個行

for(

int i=

0;i++i)

}//組合

count+

=cur_count*

(cur_count-1)

/2;}

}return count;}}

;

LeetCode 750 角矩形的數量(DP)

給定乙個只包含 0 和 1 的網格,找出其中角矩形的數量。乙個 角矩形 是由四個不同的在網格上的 1 形成的軸對稱的矩形。注意只有4角的位置才需要為 1。並且,4 個 1 需要是不同的。示例 1 輸入 grid 1,0,0,1,0 0,0,1,0,1 0,0,0,1,0 1,0,1,0,1 輸出 1...

矩形的四角發光

最近在做乙個運維的專案,設計的乙個介面,為了體現科技感,四周加了個發光的直角。設計稿demo 用 如何實現呢?我是這樣寫的,各位看官有更好的建議非常歡迎提出,瘋姑娘也是在摸索著前進中 divstyle width 820 px height 250 px margin right 10 px flo...

陣列中對打矩形區域為1的數量

題目 給定乙個矩形矩陣map,其中的值只有0和1兩種,求其中全是1的所有矩形區域中,最大的矩形區域為1的數量。例如 1 0 1 1 1 1 1 1 1 1 1 0 其中,最大的矩形區域有6個1,所以返回6.思路 將問題的整個矩陣分成以每行為底的分問題,從上至下,先是以第一行為底,第一行是乙個一維陣列...