题解 | #二维数组中的查找#

二维数组中的查找

http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

我用了两种方法解: 第一种方法耍赖,遍历每一行数组,然后用list的in方法判断在不在里面。 第二种方法是先遍历最后一行,找到target大于前一个元素,小于后一个元素位置j,然后移到上一行,从j开始往后找,类似于上一步找到target大于前一个元素,小于后一个元素位置j',在往上一行,依次类推。

# -*- coding: utf-8 -*-
"""
Created on Fri Mar 25 19:59:09 2022

@author: Administrator
"""

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param target int整型 
# @param array int整型二维数组 
# @return bool布尔型
#
class Solution:
    def Find1(self , target: int, array) -> bool:
        # write code here
        nrows = len(array); ncols = len(array[0])
        if ncols == 0:
            return False
        tag=0
        for i in range(nrows):
            tmp_list = array[nrows-i-1]
            for j in range(tag , ncols):
                if tmp_list[j] == target:
                    return True
                elif tmp_list[j]<target:
                    pass
                else:
                    break
            if j==0:
                pass
            else:
                tag = j
        return False
    def Find(self , target: int, array) -> bool:
        # write code here
        nrows = len(array)
        for i in range(nrows):
            if target in array[i]:
                return True
        return False


array = [[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
print(Solution().Find(7 , array))
全部评论

相关推荐

仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务