Estou tentando resolver o seguinte problema usando dois ponteiros. Dada uma matriz de números inteiros, as temperaturas representam as temperaturas diárias, retorne uma resposta de matriz tal que resposta[i] seja o número de dias que você terá que esperar após o i-ésimo dia para obter uma temperatura mais quente . Se não houver nenhum dia futuro para o qual isso seja possível, mantenha answer[i] == 0.
A seguir está meu código:
class Solution(object):
def dailyTemperatures(self, temperatures):
l = 0
r = 1
res = []
while r < len(temperatures):
if temperatures[r] > temperatures[l]:
diff = temperatures[r] - temperatures[l]
res.append(diff)
l += 1
r += 1
else:
diff = temperatures[l] - temperatures[r]
res.append(diff)
l += 1
r += 1
return res
Então, para seguir a entrada; temperaturas = [73,74,75,71,69,72,76,73] , deve exibir Output: [1,1,4,2,1,1,0,0] mas para o meu código está exibindo output= [1, 1, 4, 2, 3, 4, 3]. Onde estou errando na minha abordagem?
Seu código calcula a diferença entre as temperaturas, mas o problema pede quantos dias esperar por uma temperatura mais quente. Portanto, em vez de calcular a diferença de temperatura, você deve calcular a diferença do índice.