by Guest » 05 Jan 2025, 11:11
Ich habe diese Leet-Code-Fragen bearbeitet
https://leetcode.com/problems/maximum-a ... scription/
Ich konnte eine Lösung erstellen, nachdem ich den Schiebefensteralgorithmus verstanden hatte. Ich habe mich bei meinem Code gefragt, wo meine Logik schief geht. Ich glaube, mein Problem scheint in diesem Abschnitt des Codes zu liegen, aber ich kann nicht genau sagen, warum.
Code: Select all
while temp > k:
temp -= nums[left]
left += 1
ans = temp / (curr - left + 1)
Obwohl ich auch andere Lösungen und Möglichkeiten zur Lösung dieses Problems schätze, möchte ich die Lösung zuerst verstehen und zum Funktionieren bringen, bevor ich anfange, nach verschiedenen Möglichkeiten zur Lösung des Problems zu suchen. Auf diese Weise werde ich besser Verständnis des Algorithmus

Vollständige Codereferenz
Code: Select all
def findMaxAverage(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: float
"""
left = 0
ans = 0
temp = 0
for curr in range(len(nums)):
temp += nums[curr]
curr += 1
while temp > k:
temp -= nums[left]
left += 1
ans = temp / (curr - left + 1)
return ans
Ich habe diese Leet-Code-Fragen bearbeitet
https://leetcode.com/problems/maximum-average-subarray-i/description/
Ich konnte eine Lösung erstellen, nachdem ich den Schiebefensteralgorithmus verstanden hatte. Ich habe mich bei meinem Code gefragt, wo meine Logik schief geht. Ich glaube, mein Problem scheint in diesem Abschnitt des Codes zu liegen, aber ich kann nicht genau sagen, warum.
[code] while temp > k:
temp -= nums[left]
left += 1
ans = temp / (curr - left + 1)
[/code]
Obwohl ich auch andere Lösungen und Möglichkeiten zur Lösung dieses Problems schätze, möchte ich die Lösung zuerst verstehen und zum Funktionieren bringen, bevor ich anfange, nach verschiedenen Möglichkeiten zur Lösung des Problems zu suchen. Auf diese Weise werde ich besser Verständnis des Algorithmus :)
Vollständige Codereferenz
[code] def findMaxAverage(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: float
"""
left = 0
ans = 0
temp = 0
for curr in range(len(nums)):
temp += nums[curr]
curr += 1
while temp > k:
temp -= nums[left]
left += 1
ans = temp / (curr - left + 1)
return ans
[/code]