【问题标题】:Checking for similar numbers in the 2D array?检查二维数组中的相似数字?
【发布时间】: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


【解决方案1】:

通过使用递归和检查邻居,您正在走上正确的道路。你需要摆脱你的静态变量 var 并且你的递归方法应该返回一个 bool 值。静态变量 var 与递归函数结合使用会导致很多问题。

【讨论】:

  • 我改变了函数返回类型和静态变量。此代码有效,它在数组中找到相同的数字 3 次,但我想找到彼此接近的相似数字,即连续。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 2016-12-21
  • 1970-01-01
相关资源
最近更新 更多