leetcode preguntas cara 57 - II y ventana deslizante consecutiva de secuencia positiva s.
leetcode 2020 de marzo de 1 pregunta diaria ponche
para probar la seguridad de la oferta
Problema: introduzca un objetivo entero positivo, la salida de todos los enteros positivos consecutivos, y la secuencia diana (que contiene al menos dos números). Los números en secuencia ascendente están dispuestas en orden de diferentes secuencias de acuerdo con el primer dígito ascendente.
Ejemplo 1:
Entrada: target = 9
Salida: [[2,3,4], [4,5]]
Ejemplo 2:
Entrada: target = 15
Salida: [[1,2,3,4,5], [4 , 5,6], [7,8]]
límite: 1 <= destino <= 10 ^ 5
Vínculo del título original: https: //leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/
Ideas: Pythonventana deslizante: L es el borde izquierdo de la ventana, r es el borde de la ventana derecha. Cuando la ventana digital y menos de objetivo, R derecha; mayor de diana, l derecho, sino que es igual para obtener una solución de destino.
Detalles: Los dos primeros ciclos que resuelve la violencia, Claro supera un límite de tiempo.
código:
class Solution(object):
def findContinuousSequence(self, target):
"""
:type target: int
:rtype: List[List[int]]
"""
# 滑动窗口
# sum = (start+end)*(end-start+1)/2
ans=[]
l=1
r=2
while l <= target/2:
sum = (l+r)*(r-l+1)/2
if sum == target:
tem = []
for i in range(l,r+1):
tem.append(i)
ans.append(tem)
l+=1
r=l+1
elif sum > target:
l+=1
r=l+1
elif sum < target:
r+=1
return ans
Como reproduce, por favor indique la fuente! Reservados todos los derechos