Führen Sie ein Array nums die folgende Operation durch. Wenn mehrere solcher Paare existieren, wählen Sie das links. (Wenn es existiert). /> [*] Das Paar (3,1) hat die minimale Summe von 4. Nach dem Ersatz nums = [5,2,4] .
[*] Das Paar (2,4) hat die minimale Summe von 6. Nach Ersatz, nums = [5,6] . wurde in zwei Operationen nicht abgeschreckt. /> Die Array Nums < /code> ist bereits sortiert.
Code: Select all
1 arr[i + 1]:
return False
return True
while not is_sorted(nums):
d = {}
i = 0
while i < len(nums) - 1:
d[i] = nums[i] + nums[i + 1]
i += 1
min_key = min(d, key=d.get)
nums.insert(min_key + 2, d[min_key])
del nums[min_key:min_key + 2]
op += 1
return op
< /code>
Problem: < /h2>
Während dieser Code 667 von 680 Testfällen übergeht, stößt er auf einen Zeitlimit überschreitet (tle) Fehler in den verbleibenden Fällen. Die aktuelle Zeitkomplexität ist O (n²), was für größere Eingaben ineffizient ist. Ich suche Unterstützung bei der Optimierung dieses Codes, ohne seine Kernlogik zu ändern.>