WiggleSort: дает неверный результат?Python

Программы на Python
Anonymous
WiggleSort: дает неверный результат?

Сообщение Anonymous »

Я пытаюсь решить задачу 324 LeetCode. Wiggle Sort II](https://leetcode.com/problems/wiggle-so ... scription/):

Для заданного целочисленного массива nums измените его порядок так, чтобы nums[0] < nums[1] > nums[2] < nums[3]....
Вы можете предположить, что входной массив всегда содержит правильный ответ.

Код: Выделить всё

class Solution:
def wiggleSort(self, nums):
nums.sort()

smallnums = nums[:len(nums)//2]
largenums = nums[len(nums)//2:]

newArr = []

for i in range(len(smallnums)):
newArr.append(smallnums[i])

if i < len(largenums):
newArr.append(largenums[i])

if len(largenums) > len(smallnums):
newArr.append(largenums[-1])

return newArr
Копирование/вставка моего локального кода в LeetCode дало другой выходной массив, например этот:
Ввод:

Код: Выделить всё

[1,3,2,2,3,1]
Выход:

Код: Выделить всё

[1,1,2,2,3,3]
Ожидается:

Код: Выделить всё

[2,3,1,3,1,2]
Но мой VSCode/локальный терминал выдает правильный вывод [1,2,1,3,2,3], но LeetCode выдает совершенно другой вывод. Я что-то упускаю? Как это возможно?

Подробнее здесь: https://stackoverflow.com/questions/787 ... ong-output

Вернуться в «Python»