Swift.二维数组中的查找

cubegaoIP属地: 广东
字数 183阅读 3,424

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

class Solution {
    func find(_ n: [[Int]],_ i: Int) -> Bool {
        
        guard n.count > 0 else {
            return false
        }
        
        var row = 0
        var col = n.first!.count - 1
        
        while row <= n.count - 1 && col >= 0 {
            
            if n[row][col] == i {
                return true
            }else if n[row][col] > i {
                col -= 1
            }else {
                row += 1
            }
        }
        
        return false
    }
}
image

解法思想:首先把数组画成矩形。然后观察规律发现,从右上角第一个数字看,比它大的都在下方,比它小的都在左方。很容易就得出题解了。

非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://cubegao.com/archives/search_a_2d_matrix.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
0人点赞
cubegao人生没有白走的路,每一步都算数。
总资产0共写了3923字获得0个赞共1个粉丝

推荐阅读更多精彩内容

  • 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,输入一个二维数组中的数字...
    FlyElephant阅读 5,132评论 2 0
  • 数组 记录《剑指offer》中所有关于数组的题目,以及LeetCode中的相似题目 相关题目列表 说明 由于简书...
    wenmingxing阅读 5,375评论 1 12
  • 做个记录吧,有什么错误,希望大家帮忙指正一下。可能我写的比较简单,有的东西没有考虑到,也希望大家多多指正。谢谢啦~...
    playman阅读 2,900评论 0 1
  • 下面是我整理的,剑指Offer前五章所有的题目以及相关题和拓展题的题目和答案。代码的话放在github上,您可以下...
    kikido阅读 4,647评论 0 1
  • 以前不想一个人睡宿舍 现在还蛮享受 一个感觉一个人吃饭特寂寞 现在看看电影背背单词也不觉得什么了 以前都是因为实习...
    DYWDaisy阅读 864评论 0 0