Título Descrição :
(O comprimento de cada uma matriz tridimensional do mesmo), cada fileira da esquerda para a direita em ordem de tipo ascendente, para classificar cada coluna em uma matriz bi-dimensional, a fim de aumentar a partir de cima para baixo. Uma função completa, introduzir uma matriz tal bidimensional e um número inteiro, é determinado se a matriz contém o número inteiro.
idéias :
- Violência Resolver Método : Como os elementos da matriz são armazenados de acordo com a lei, para tem e . Assim, quando uma matriz dimensional inferior de uma forma violenta é se existe um na comparação inteiro para encontrar a matriz.
- método inteligente : Devido à existência de uma lei, a posição onde podemos a partir da posição elemento menor ou maior do elemento, que é o canto inferior esquerdo ou no canto superior direito da matriz bidimensional para começar a procurar. Se os elementos da posição corrente é menor do que o número de pesquisas, o número de linhas e 1, caso contrário, o número de colunas mais um.
Código AC
Violência Solving Method
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
data = array[0]
# 全部元素
for i in range(1, len(array)):
data.extend(array[i])
if target in data:
return True
return False
método inteligente
# 下三角寻找
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
if array == None:
return None
# 行数和列数
rows, cols = len(array), len(array[0])
# 下三角寻找
row = rows - 1
col = 0
while row >= 0 and col <= cols - 1:
if array[row][col] == target:
return True
elif array[row][col] > target:
row -= 1
else:
col += 1
return False
# 上三角寻找
# -*- coding:utf-8 -*-
class Solution:
def Find(self, target, array):
# write code here
if array == None:
return None
# 行数和列数
rows, cols = len(array), len(array[0])
col = cols - 1
row = 0
while col >= 0 and row <= rows - 1:
if array[row][col] == target:
return True
elif array[row][col] > target:
col -= 1
else:
row += 1
return False