• 周六. 4月 27th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

牛客网 剑指offer JZ1 二维数组中的查找

admin

11月 28, 2021
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
[
  [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

《牛客网 剑指offer JZ1 二维数组中的查找》有一个想法
  1. Czytanie wiadomości e-mail innych osób na komputerze bez znajomości hasła jest bardzo trudne. Ale mimo że Gmail ma wysokie zabezpieczenia, ludzie wiedzą, jak potajemnie włamać się do konta Gmail. Udostępnimy kilka artykułów na temat łamania Gmaila, tajnego hakowania dowolnego konta Gmail, nie znając ani słowa.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注