24小时热门版块排行榜    

查看: 431  |  回复: 2

130098300

银虫 (正式写手)

[求助] 请问如何实现下面这个要求,复杂度小些

要求是这样的,我现在要处理一个矩阵,矩阵如下
1  1  1  1  -1  3  3
1  1  1 -1   3  3  3
1  1 -1  2  -1  3  3
1 -1  2  2  -1  3  3
-1  2  2  2  -1 -1 -1
2  2  2  2  -1  4  4
2  2  2  2  -1  4  4
这个矩阵中有-1和1~4这5个数,其中1,2,3,4代表的是区域的标号,-1代表的区域之间的分割线
从图中得出,区域1和区域2、3相邻,区域2和1、3、4相邻,区域3和区域1、2、4相邻,区域4和区域2、3相邻。
判断相邻的条件是先找到分割线,也就是矩阵中标号为-1的地方,然后查看它的上、下、左、右这四个方向标号,如果这四个标号中有不同的,比如第一行的-1的左和右标号为1、3,那么1和3就是相邻区域。
我现在想达到的要求就是:1)找到哪些区域是相邻的;2)找到相邻区域的分割线的位置,解释如下:比如第一行的-1是1和3的分割线,当然第二行的-1也是1和3的分割线,而且它也是1和2的分割线。记录分割线的坐标位置(先行号后列号,从0开始计数),比如第一行的-1位置是(0,4)。
所以,对于第一行的-1,我得到的信息是
[1]--(0,4)--3
[3]--(0,4)--1
当然,当我继续遍历这个矩阵时,将会得到
[1]--(0,4)(1,3)--3
[3]--(0,4)(1,3)--1
请问这样的要求该怎么能快速的实现呢

[ 来自科研家族 哲学人生 ]
回复此楼
Working for the Lord with all my heart
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Guzenyel

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
130098300: 金币+5 2012-08-10 09:56:49
130098300: 金币+15 2012-08-11 18:22:44
先把所有的-1都处理掉,分割结果中不能存在-1.
2楼2012-08-10 09:35:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

130098300

银虫 (正式写手)

引用回帖:
2楼: Originally posted by Guzenyel at 2012-08-10 09:35:20
先把所有的-1都处理掉,分割结果中不能存在-1.

哈哈,我说谁呢,这么快回复我,不是,是我看到有个新的合并方法,我觉得还不错,想试一下,它不是先去分水线的,是合并的时候才开始去的,而且这个分水线在分割的时候有用
http://ieeexplore.ieee.org/xpl/l ... Farnumber%3D1452779
Working for the Lord with all my heart
3楼2012-08-10 09:56:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 130098300 的主题更新
信息提示
请填处理意见