美文网首页
二维数组中的查找

二维数组中的查找

作者: flyinghat | 来源:发表于2019-03-01 23:36 被阅读0次

    题目:

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。
    1 2 3 4 5
    2 3 4 5 6
    3 4 5 6 7
    4 5 6 7 8

    思路:

    • 从右上角开始比较,如果target大于右上角的值 5 ,则按照该二维数组的规律,target必在其下行,因此需要向下一行再比较右上角 6 row++
    • 如果target小于右上角的值,则按照规律,target必在其左行,因此需要向左一行再比较右上角, col--
      直至相等为止
      请注意,C#中对于交错数组的元素没有初始化语法。 必须使用new初始化,为其分配内存空间
            public bool Find(int target, int[][] array)
            {
                int row = 0; //行                 
                int col = array[0].Length - 1; //列数      
                while (row <= array.Length - 1 && col >= 0)
                {
                    if (target == array[row][col])  //从右上角开始比较  
                    {
                        return true;
                    }
                    else if (target > array[row][col])
                    {
                        row++;   //
                    }
                    else
                    {
                        col--;
                    }
                }
                return false;
            }
    

    相关文章

      网友评论

          本文标题:二维数组中的查找

          本文链接:https://www.haomeiwen.com/subject/jgdsuqtx.html