zoukankan      html  css  js  c++  java
  • 牛客网 剑指offer JZ1 二维数组中的查找

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

    给定 target = 7,返回 true。

    给定 target = 3,返回 false。

    第一次用牛客的编辑器,有一些问题,

    因为并不是直接IO,需要主函数放最后,

    互相用self引用。

    如果某个函数被引用,需要在第一个参数声明self

    其他就是简单的二分

    # -*- coding:utf-8 -*-
    
    class Solution:
        # array 二维列表
        def b_rearch(self, start, stop, target, array):
                if (start > stop ):
                    return False
                mid = (stop + start ) // 2
                if (array[mid] == target):
                    return True
                elif (array[mid] > target):
                    return self.b_rearch(start , mid-1, target , array)
                else:
                    return self.b_rearch(mid+1 , stop, target , array)
        def Find(self, target, array):
            lenght = len(array[0])-1
            high = len(array)-1
            while(high > 0):
                if(array[high][0] > target):
                    high = high - 1
                else:
                    break
            for i in range(0,high + 1):
                if(self.b_rearch(0, lenght, target, array[i]) == True):
                    return True
            return False
  • 相关阅读:
    快速幂
    Oracle悲观锁和乐观锁
    UTL_RAW的问题?
    Linux操作系统下关于Top命令的参数详解
    存储过程与函数
    网站前端优化一些小经验
    Java获取各种常用时间方法2
    Pro CSS Techniques 读书笔记(六)
    Java获取各种常用时间方法
    Oracle专用服务器与共享服务器的区别
  • 原文地址:https://www.cnblogs.com/upstart/p/15012871.html
Copyright © 2011-2022 走看看