leetcode лицо вопросы 57 - II и число последовательных положительной последовательности с (Python).

Here Вставка рисунка Описание
Решение:
Эта проблема может быть решена с помощью алгоритма скользящего окна:
раздвижные окна алгоритм сначала устанавливает два указателя, соответственно, слева и справа, слева и rifght указатель Указатель для ограничения объема (то есть выравнивание области видимости) скользящего окна;
скользящего окна, правая и левая рука указатели перемещаются вправо,
найти все устраивало в скользящем окне.

Эта проблема ищет непрерывную последовательность положительных целых чисел, расположение , таким образом , возможно , чтобы целевое число равно 1 - 1 диапазон;
и цели из - мишени, комбинация , которые не могут быть медианой последовательности на мишень, и больше , чем среднее количество композиций,
например:
средний показатель составляет 11, то есть 6, 6 и последующее возможно за счет расположения состоящей из 6,
таким образом , выстроены диапазон числа от 1 до 1 + 2 // мишени;
левый указатель инициализируется 1 , указатель rihgt также инициализируется до 1; каждый диапазон рассчитывается диапазон (влево, вправо + 1)
, если значение меньше , чем цели, то правая + = 1;
если значение больше , чем мишень, то левый + = 1;
если он равен целевое значение, необходимо добавить левую, правую руку , в то же время также необходимость увеличения;

  1. В начале каждого элемента расположен только в одном наборе, поэтому необходимость найти левый плюс 1;
  2. Текущая слева направо и, конечно, больше, чем слева направо + 1 и, следовательно, добавить право, уменьшая время сложность, скорость до операции;

Код выглядит следующим образом:

class Solution:
    def findContinuousSequence(self, target):

    	left = 1
    	right = 1

    	result = []

    	while right <= (target//2 + 1):

    		cur_sum = sum(list(range(left, right + 1)))

    		if cur_sum < target:

    			right += 1

    		elif cur_sum > target:

    			left += 1

    		else:

    			result.append(list(range(left, right + 1)))

    			left += 1

    			right += 1

    	return result
Опубликовано 100 оригинальных статей · вона похвала 3 · просмотров 10000 +

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

отblog.csdn.net/cy_believ/article/details/104859712
рекомендация