码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offfer:二维数组中的查找

时间:2018-01-26 18:45:18      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:之间   代码   targe   输入   size   turn   最小值   strong   off   

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

例如:                                              

       1    2    8     9

       2    4    9    12

       4    7   10   13

       6    8    11  15

查找7返回True,查找5返回False

 -—— - —— - —— - —— - —— - —— - —— - -—— - —— - —— - —— - —— - —— - —— - -—— - —— - —— - —— - —— - —— - ——

分析:选取右上角的元素,若数字等于要查找的数字,则查找过程结束;

            若大于要查找的数字,提出这个数字所在 的列;

            若小于则提出这个数字所在的行,每一步都可以缩小查找的范围

代码:python 2.7.3

# -*- coding:utf-8 -*-
class Solution:
    # array 二维列表
    def Find(self, target, array):
        # 标识变量
        found = False
        # 检查输入 None,空数组
        if array == None:
            return found
        nrow=len(array)-1
        ncol=len(array[0])-1
        row=0
        col=ncol
        while row<=nrow and col>=0:
            if array[row][col]==target:
                found=True
                break
            elif array[row][col]>target:
                col=col-1
            else:
                row=row+1
        return found

测试用例:1.二维数组中包含查找的数字(数组中的最大值、中间值、最小值)

                  2.数组中没有查找的数字(大于数组的最大值,小于数组的最小值,在数组值之间 但是数组中没有这个数字)

                  3.特殊输入测试(输入为空)

 

剑指offfer:二维数组中的查找

标签:之间   代码   targe   输入   size   turn   最小值   strong   off   

原文地址:https://www.cnblogs.com/tuzidejiubing/p/8360273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!