python算法题---搜索二维矩阵

Python09

python算法题---搜索二维矩阵,第1张

刷题顺序是按照LeetCode的 算法面试题汇总 进行的.

使用的是遍历搜索的方式,根据矩阵的规则,写好跳出条件,减少循环次数。之后会用二叉搜索树再实现一次。

下面是基于python3.4的数组矩阵输入方法:

1.import numpy as np

2.arr = [1,2,3,4,5,6,7,8,9]

3.matrix_a = np.array(arr)2.

4.手动定义一个空数组:arr =[],链表数组:a = [1,2,[1,2,3]]。  

Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议[2]  。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中[3]  有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。

按照你的要求编写的Python语言的矩阵程序如下

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

def printMatrix(n):

 arr = [ [0 for i in range(n)] for j in range(n)]

 curNum = 1

 for i in range(0,2*n-1):

  if i%2 == 0:

   for j in range(0,n):

    for k in range(0,n):

     if j+k==i:

      arr[j][k] = curNum

      curNum=curNum+1

  else:

   for j in range(n-1,-1,-1):

    for k in range(n-1,-1,-1):

     if j+k==i:

      arr[j][k] = curNum

      curNum=curNum+1

 for i in range(0,n):

  for j in range(0,n):

   print (arr[i][j],"\t",end='')

  print ("\n")

printMatrix(10)