我有2行和n列。 我必須找到從其他1.分離1例如所需的最小行數:N找到最小數量的水平和垂直線與其他1分開1?
設= 6
0 0 1 0 1 1
1 0 0 1 0 1
我需要繪製這些2行之間1條水平線。 索引之後的2條垂直線(從0開始)2和索引4之後直到底部。
所以總線= 1 + 2 = 3
注意,線可以是任何長度的,即它可以是一個列的長度,但行數應該是最小和各1(矩陣數)應與其他1.
又如分離澄清這更多:
設N = 7
1 0 1 0 0 1 1
0 1 0 0 1 0 0
在這個例子中我需要1點水平線的d 2條垂直線。 索引1之後的一條垂直線和索引5之後的其他一條垂直線(長度等於列的線)。
所以總線= 1 + 2 = 3
請給我提供至少時間複雜度的解決方案。
你有試過什麼嗎?這可能不是你的意圖,但這是作爲「請爲我做作業」的問題。 –
我試過了,但是我的邏輯超過了O(n^2),超過了我提到的問題中提到的時間複雜度。好吧,在嘗試之前我不會問問題。如果你能夠理解我的作業,請做! – Alfran
如果你解釋你的邏輯,它可能會有所幫助,也許可以調整它。我的猜測是動態編程方法可行。這是一個有趣的問題。由於水平線是可選的,你可以做兩次。一旦水平線和一次沒有,然後採取兩個解決方案中更好的。 –