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

面试题3:二维数组中的查找

时间:2019-12-20 13:26:02      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:超过   charm   targe   bit   判断   div   glob   isnull   color   

代码如下:

 

 1 # coding:utf-8
 2 """
 3 =========================================
 4 File:SearchMatrix.py
 5 Author:Nobita
 6 Time:2019/12/18 20:46
 7 E-main:364942727@qq.com
 8 Description:面试题3:二堆数组中的查找
 9 Software:PyCharm
10 =========================================
11 """
12 
13 ‘‘‘
14 题目:
15 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
16 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否有该整数。
17 
18 输入:
19 matrix = [
20   [1,   3,  5,  7],
21   [10, 11, 16, 20],
22   [23, 30, 34, 50]
23 ]
24 target_true = 3
25 输出: True
26 target_false = 13
27 输出: False
28 ‘‘‘
29 class Solution:
30     def searchMarix(self, matrix, target):
31         num_row = len(matrix)
32         num_col = len(matrix[0])
33         if num_row > 0 and num_col > 0:
34             i, j = 0, num_col - 1
35             while i < num_row and j >= 0:
36                 if target == matrix[i][j]:
37                     return True
38                 elif target < matrix[i][j]:
39                     j -= 1
40                 else:
41                     i += 1
42         return False
43 
44 if __name__ == __main__:
45     matrix = [
46         [1, 3, 5, 7],
47         [10, 11, 16, 20],
48         [23, 30, 34, 50]
49     ]
50     target_true = 3
51     target_false = 13
52     print(Solution().searchMarix(matrix, target_true))
53     print(Solution().searchMarix(matrix, target_false))

 

 

代码自测:

 

 1 # -*- coding: utf-8 -*-
 2 """
 3 @File:test_SearchMatrix.py    
 4 @E-mail:364942727@qq.com
 5 @Time:2019-12-19 8:24 
 6 @Author:Nobita   
 7 @Version:1.0   
 8 @Desciption:对SearchMatrix函数进行单元测试
 9 """
10 
11 import unittest
12 from .SearchMatrix import Solution
13 
14 
15 class TestSearchMatrix(unittest.TestCase):
16     def setUp(self):
17         global matrix
18         matrix = [[1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]
19 
20     def test_01_MaxNum_in_Matrix(self):
21         ‘‘‘测试二维数组中的最大值,预期输出:True‘‘‘
22         target = 50
23         result = Solution().searchMarix(matrix, target)
24         self.assertEqual(result, True, msg=test_01_测试失败!)
25 
26     def test_02_MinNum_in_Matrix(self):
27         ‘‘‘测试二维数组中的最小值,预期输出:True‘‘‘
28         target = 1
29         result = Solution().searchMarix(matrix, target)
30         self.assertEqual(result, True, msg=test_02_测试失败!)
31 
32     def test_03_MidNum_in_Matrix(self):
33         ‘‘‘测试二维数组中的中间值,预期输出:True‘‘‘
34         target = 11
35         result = Solution().searchMarix(matrix, target)
36         self.assertEqual(result, True, msg=test_03_测试失败!)
37 
38     def test_04_OverMaxNum_not_in_Matrix(self):
39         ‘‘‘测试二维数组中超过最大值的数,预期输出:False‘‘‘
40         target = 51
41         result = Solution().searchMarix(matrix, target)
42         self.assertEqual(result, False, msg=test_04_测试失败!)
43 
44     def test_05_LessMinNum_not_in_Matrix(self):
45         ‘‘‘测试二维数组中小于最小值的数,预期输出:False‘‘‘
46         target = 0
47         result = Solution().searchMarix(matrix, target)
48         self.assertEqual(result, False, msg=test_05_测试失败!)
49 
50     def test_06_MatrixIsNull(self):
51         ‘‘‘测试二维数组中空值矩阵,预期输出:False‘‘‘
52         target = 1
53         null_matrix = [[]]
54         result = Solution().searchMarix(null_matrix, target)
55         self.assertEqual(result, False, msg=test_06_测试失败!)
56 
57 
58 if __name__ == __main__:
59     unittest.main()

面试题3:二维数组中的查找

标签:超过   charm   targe   bit   判断   div   glob   isnull   color   

原文地址:https://www.cnblogs.com/chenshengkai/p/12072593.html

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