Функция максимального поворота

Вам дан целочисленный массив nums длины n.

Предположим, что arrk — это массив, полученный путем поворота nums на k позиций по часовой стрелке. Определим функцию вращения F на nums следующим образом:

F(k) = 0 * arrk[0] + 1 * arrk[1] + … + (n — 1) * arrk[n — 1].
Верните максимальное значение F(0), F(1), …, F(n-1).

Тестовые примеры генерируются таким образом, чтобы ответ помещался в 32-битное целое число


class Solution(object):
    def maxRotateFunction(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        res = []
        n = len(nums)
        mx = 0

        def rotateFn(k):
            total = 0
            nonlocal nums
            nums =  nums[0:k % n-1] + nums[k+1 % n -1:]
            for i in range(n):
                total += nums[i] * i

            return total

        for i in range(n):
            mx = max(mx, rotateFn(i))
        return mx


Войти в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий