Кисточка Найти доказательства предложения безопасности двумерный массив записей в вопросе

1 Название Описание

(Длина каждого одномерного массива из же), каждая строка слева направо в порядке возрастания сортировки, чтобы отсортировать каждый столбец в двумерный массив в порядке возрастания от верха до низа. Полная функция, ввести такой двумерный массив и целое число, то определяются, содержит ли массив целого числа.

2 насильственного решение проблем

2.1 Анализ

Один за другим через массив, она возвращает истину, если найдено, обыскали весь массив не может быть найден, он возвращает ложь.

2.2 Код

class Solution:
    # array 二维列表
    def Find(self, target, array):
        for i in array:
            for j in i:
                if j == target:
                    return True
        return False

2,3 Сложность

Время Сложность: ( N 2 ) O (N ^ 2)
Пространство сложности: O ( 1 ) O (1)

3 из правого верхнего угла, чтобы начать поиск

3.1 Анализ

Условиях , указанные, массив увеличивается слева направо, сверху вниз увеличивается,
то есть самый правый элемент в каждой строке для значения максимальной строки;
Анализ:
Это значение равно целей, возвращает истину,
это значение меньше , чем цели, исключено строка, вниз на одну строку;
это значение больше , чем мишень, столбец исключается, левый;

3.2 Код

class Solution:
    # array 二维列表
    def Find(self, target, array):
        rows = len(array)
        cols = len(array[0])
        
        i = 0
        j = cols - 1
        while i<rows and j>=0:
            if array[i][j] == target:
                return True
            elif array[i][j] < target:
                i = i + 1
            elif array[i][j] > target:
                j = j - 1
        return False

3.3 Сложность

Сложность Время: O (строки + COLS)
Сложность Площадь: O (1)

Опубликовано 38 оригинальных статей · 98 вона похвала · просмотров 360 000 +

рекомендация

отblog.csdn.net/xijuezhu8128/article/details/104675020