【发布时间】:2015-01-18 08:15:16
【问题描述】:
我必须找出相似的号码。在二维数组中的对角线、列、行或三角形中,如果相同,则没有。找到然后条件为真,我想知道类似号码的位置。因为稍后我想用我的标记号(-1)替换这些位置。
例如,这些是 true 的数组实例,因为它们的编号相同。在给定的模式中
实例:真
001
001
001
实例:真
100
010
001
实例:真
000
111
000
实例:真
000
100
110
实例:真
000
010
110
例如,这些是 false 的数组实例,因为它们没有相同的编号。在给定的模式中 实例:错误
101
010
000
同样适用于另一种可能的模式。我选择递归方法来检查邻居,然后检查他们的邻居,但结果不同,它正在检查相同的号码。总的来说,如果发现 3 没有。任何地方然后返回true。 这是我的代码 sn-p
int var=0;
bool CheckSame(int row,int col,int num)
{
if (var==3)
return true;// 3 same numbers found
if (var!=3 && row==0)
return false;//reached first row but didn't find
if (arr[row][col]==num)
{
var++;
}
if (col==(MAX-1))//right corner
{
if (arr[row][col]==arr[--row][col]==arr[row][col])
CheckSame(--row,col,num);//upper
CheckSame(row,--col,num);//left
CheckSame(--row,--col,num);//D-left
}
else if (col==0)//left corner
{
CheckSame(--row,col,num);//upper
CheckSame(row,++col,num);//right
CheckSame(--row,++col,num);//D-right
}
else//other
{
CheckSame(row,++col,num);//right
CheckSame(row,--col,num);//left
CheckSame(--row,col,num);//upper
CheckSame(--row,++col,num);//D-right
CheckSame(--row,--col,num);//D-left
}
}
【问题讨论】:
-
or triangle请解释一下“三角形”是什么意思。 -
也问一个问题。这不是博客网站。
-
三角形是指任意维度二维数组中相似数字的直角三角形结构,它可以在数组中的任何位置。
-
@juanchopanza 此代码在数组中找到 3 次相同的数字,但我想找到彼此接近的相似数字,即数组实例中提到的连续数字。
标签: c++ arrays algorithm logic