本文主要是介绍[LeetCode Python3] 396. Rotate Function + 暴力 + 错位相减,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
396. Rotate Function
暴力 时间复杂度O(n*n)
按照计算规则,一步一步来
class Solution:def maxRotateFunction(self, nums: List[int]) -> int:size, res = len(nums), -float('inf')for i in range(size):tmp = 0for j in range(size):tmp += j * nums[(j + size - i) % size] # 用下标(j + size - i) % size来表示顺时针旋转i个位置res = max(res, tmp)return res
错位相减 时间复杂度O(2*n)
class Solution:def maxRotateFunction(self, nums: List[int]) -> int:size, nsum = len(nums), sum(nums)tmp = sum([i*nums[i] for i in range(size)])res = tmpfor i in range(1, size):tmp = tmp + nsum - size * nums[size-i]res = max(res, tmp)return res
这篇关于[LeetCode Python3] 396. Rotate Function + 暴力 + 错位相减的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!