美文网首页
01_二维数组中的查找【python】

01_二维数组中的查找【python】

作者: NWPU_HaiboWu | 来源:发表于2019-08-10 21:48 被阅读0次

1. 前言

对于一个用了三年java,一年Python的程序员来说,现在学c++也太难受了,然后我就...放弃了
没错,一天一个想法的我,又开了一个专栏,Python刷完牛客网的剑指Offer和LeetCode,每周至少四题,大家监督

2.题目:二维数组中的查找

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

3.思路

选择从二维数组的左下角开始遍历,如果大于target 就上移,小于target就右移,结束返回False

4.实现

# -*- coding:utf-8 -*-
class Solution:
    # array 二维列表
    def Find(self, target, array):
        # write code here
        
        row=len(array)
        col=len(array[0])
        #这里用while循环可能看着更舒服一些
        for i in range(row):
            for j in range(col):
                if array[row-i-1][j]>target:
                    i=i+1
                elif array[row-i-1][j]<target:
                    j=j+1
                else:
                    return True
        return False

5. 二维数组的相关知识点

import  numpy as np
def Find(target,array):
    row=len(array)
    col=len(array[0])

    for i in range(row):
        for j in range(col):
            if array[row-i-1][j]>target:
                i=i+1
            elif array[row-i-1][j]<target:
                j=j+1
            else:
                return True
    return False

if __name__=="__main__":
    '''第一种创建二维数组的方式'''
    m=n=3
    array1=[[0]*m]*n
    print(len(array1))
    print("test=",array1)

    array1[0][0]=111
    # 也就是说matrix = [array] * 3
    # 操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变
    print("test=", array1)

    """第二种创建二维数组的方式"""

    lists=[[]for i in range(3)]
    lists[0].append(1)
    lists[1].append(3)
    lists[2].append(6)
    
    lists[0][0] = 111
    print("list[]:",lists)


    print(Find(3,lists))

    #  列表生成式
    lists2=[[1 for i in range(4)]for j in range(3)]

    print("lists2:",lists2)

    #使用numpy实现
    lists3=np.zeros((m,n),dtype=np.int)
    print("lists3:",lists3)

相关文章

  • 01_二维数组中的查找【python】

    1. 前言 对于一个用了三年java,一年Python的程序员来说,现在学c++也太难受了,然后我就...放弃了没...

  • LeetCode | 面试题04. 二维数组中的查找【剑指Off

    LeetCode 面试题04. 二维数组中的查找【剑指Offer】【Easy】【Python】【数组】 问题 力扣...

  • 算法题

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

  • 剑指Offer二维数组查找

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

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

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

  • 《剑指offer》(一)-二维数组中的查找(java)

    数组--二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序...

  • 刷题-数组专项

    数组 二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每...

  • 二维数组中的查找(Javascript编程) function Find(target, array){ // w...

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

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

  • 数组——二维数组中查找

    一、题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下...

网友评论

      本文标题:01_二维数组中的查找【python】

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