从矩阵中检查单元格值的邻居

时间:2017-06-16 16:53:54

标签: c performance matrix neighbours coding-efficiency

我有一个填充*的矩阵,其中-代表病毒,[row + 1][col]是病毒的免费地点,我必须在我的矩阵中查看每种病毒的邻居,一个有效的邻居是另一个病毒,而不是一个免费的地方,以确定他们的号码。我必须检查的邻居是[row - 1][col][row][col + 1][row][col - 1]if,总共有四个邻居。我做了一个检查并覆盖所有情况的函数,例如,如果我检查的元素是矩阵的一个角。我想出了一个非常长的80行函数,它有很多if语句。 是否有一种有效的方法(意思是行数)来检查所有这些,除了必须编写20 {{1}}语句?

https://pastebin.com/2f7YpreZ这是我写的代码

1 个答案:

答案 0 :(得分:0)

你可以做的是合并if语句导致相同的结果。这将导致更短(更易读)的代码,并且在某些情况下可以提高性能。

例如,如果你有:

if([row - 1][col])
    // do A
else if([row][col + 1])
    // do B
else if([row + 1][col])
    // do A

然后你可以这样写:

if([row - 1][col] || [row + 1][col])
    // do A
else if([row][col + 1])
    // do B

执行此操作,您认为您的代码需要进一步改进,请在Code Review发帖。