zoukankan      html  css  js  c++  java
  • 【算法】剑指第二版面试题4 :二维数组中的查找

    题干

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

    func Find(board [][]int, target int) bool {}
    

    直觉思路

    二分查找的思想,不断缩小查找范围。

    怎么想到的

    不断缩小查找范围。

    代码编写思路

    多少行:rlen := len(board)
    多少列: clen := len(board[0])

    行索引和列索引最大值: rlen-1,clen-1

    从右上角开始查找:初始化
    r: 行索引,第一行, 0
    c: 列索引,最后一列, clen-1

    查找继续的条件:(最后一列最后一行都是可以继续查找的)
    行索引(不断增加): r < rlen
    列索引(不断减少): c >=0

    时间复杂度 (TODO)

    • m行,n列:
      r从0到m-1,c从n-1到0. 循环最多执行m+n次,所以O(m+n)
  • 相关阅读:
    redis 集群
    redis--主从复制
    redis--AOF
    React——组件
    React——文件夹分析
    WEB面试
    WEB基础——接收后台文件方法
    WEB基础——AJAX
    C#进阶——IOC
    C#基础——HttpContext
  • 原文地址:https://www.cnblogs.com/yudidi/p/12350645.html
Copyright © 2011-2022 走看看