查看完整版本: 求高手能幫我結解決~陣列中的相鄰最大區塊
頁: [1]

659907782677 發表於 2016-8-4 02:06 PM

求高手能幫我結解決~陣列中的相鄰最大區塊

本帖最後由 659907782677 於 2016-8-7 09:32 PM 編輯

題目說明
找出 10x10 陣列中的相鄰最大區塊
相鄰定義:1 的上下左右中有 1 的為相鄰區塊預設陣列定義

$origin = array(
array(1, 1, 0, 1, 0, 0, 0, 0, 0, 0),
array(1, 1, 0, 1, 1, 0, 0, 0, 0, 0),
array(0, 0, 0, 1, 1, 0, 0, 0, 0, 0),
array(0, 0, 0, 0, 0, 1, 1, 1, 0, 0),
array(1, 1, 1, 1, 1, 0, 0, 0, 0, 0),
array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
array(1, 1, 1, 1, 1, 0, 1, 1, 1, 1),
array(1, 0, 0, 0, 1, 0, 1, 1, 1, 1),
array(1, 0, 0, 0, 1, 0, 1, 1, 1, 1),
array(1, 1, 0, 1, 1, 0, 0, 0, 0, 1)
);



↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
輸出結果要是這樣的排列方式
0000000000
0000000000
0000000000
0000000000
0000000000
0000000000
0000001111
0000001111
0000001111
0000000001



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

theloserbm 發表於 2016-8-8 12:48 PM

這題難度滿高的, 應該很少人會沒事幫你解出來
不如你先試試做做看, 有問題再提出來

alextang1030 發表於 2016-8-9 10:13 AM

本帖最後由 alextang1030 於 2016-8-31 12:18 AM 編輯

2D Array裡,母的KEY 其實你可以想像成X的坐標
而子的KEY就是Y的坐標。
一個比較方便的做法是從Y1開始讀,然後裡面再從X1開始讀

大概有點像for($y =0;$y<count($origin);$y++)
{
for($x=0;$x<count($origin[$y]);$x++)
{
if ($origin[$y][$x] == 1)
{
if ....
}
}
}後面的讀自己嘗試一下,大概意思就差不多,至於有沒有更好的方法,
就請自己去弄一下試試看了

補充內容 (2016-8-31 12:18 AM):
拍謝,感謝下面的點評改正
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]