美文网首页
Swift算法5-二维数组中的查找

Swift算法5-二维数组中的查找

作者: 四毛哥掉落的鳞片 | 来源:发表于2016-08-16 16:37 被阅读0次

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

分析:
1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15
例如这样的一个数组,我们在查找给定的整数number是否包含在数组里之前,先在数组中确定一个数,比如右上角的9,对比9和number的关系,有三种:1. 9 = number; 2. 9 > number; 3. 9 < number。
第一种关系,9 = number,查找完成,数组中包含此整数,返回true;
第二种关系,9 > number,并且我们知道,9下面的数字要比9大,所以,最有一行排除查找范围,向左移动一列,和最上面数字8比较,如果还是比8小,那再向左移动,如果此时比8大,那么我们的查找范围应该确定在第二行第一列到第三行第一列之间,在这个缩小的范围内找到右上角,即为9,重复之前的动作直到找到相等的数值或者走到最左下角;
第三种关系,9 < number, 那么排除第一行向下走,确定第二行第四列的12是否比number大,是,向下,否,向左,以此类推。

以下是代码:

class Find {
func findTheNumInBiArray(array: [[Int]], rows: Int, collomns: Int, num: Int) -> Bool {
    var found = false
    
    if (!array.isEmpty && rows > 0 && collomns > 0) {
        var row = 0
        var collomn = collomns - 1
        while (row < rows && collomn < collomns) {
            if (array[row][collomn] == num) {
                found = true
                return found
            } else if (array[row][collomn] > num) {
                collomn -= 1
            } else if (array[row][collomn] < num) {
                row += 1
            }
        }
    }
    return found
}
}

相关文章

  • Swift算法5-二维数组中的查找

    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样...

  • 剑指offer4.二维数组中的查找

    题目 题目分析 算法-二维数组中的查找 比如一个二维数组是这样: 要查找数组7在不在数组内,根据前人总结出来的规律...

  • 牛客网高频算法题系列-BM18-二维数组中的查找

    牛客网高频算法题系列-BM18-二维数组中的查找 题目描述 在一个二维数组array中(每个一维数组的长度相同),...

  • 算法题

    行列都是有序的二维数组,查找k是否存在【查找法】 二维数组中的查找(行列分别有序数组的二分查找)【递归法】 快速排...

  • 数据结构必备代码

    目录: 排序算法 树的遍历 查找 链表插入 数组与列表转化 二维数组排序 java中输入 集合遍历 一、基本排序1...

  • (算法)二维数组中查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数...

  • 剑指Offer二维数组查找

    剑指Offer二维数组查找 二维数组查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到...

  • 【算法】二维数组中的查找

    题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请...

  • 剑指 0ffer 二维数组中的查找

    算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递...

  • 二分查找算法

    二分查找算法或者折半查找算法,是一种在有序数组中查找某一特定元素的搜索算法。 搜索过程从数组的中间元素开始,如果中...

网友评论

      本文标题:Swift算法5-二维数组中的查找

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