惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
IT之家
IT之家
博客园_首页
量子位
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
博客园 - 聂微东
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
Microsoft Azure Blog
Microsoft Azure Blog
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

ABB00717

HTB - SpeedNet PHP Filter to RCE Redis HTB - Pollution HTB - Pollution 工具 常見服務 HTB - BroScience HTB - BroScience 如何把爛爛的 shell 升級成好用的 TTY 滲透筆記 HTB - Imagery HTB - Imagery HTB - Reset HTB - Reset HTB - Trick HTB - Trick HTB - Editorial HTB - Editorial 150. Evaluate Reverse Polish Notation droopescan 安裝找不到 module imp 解決「桌面背景被當成一個視窗不斷重新彈出並覆蓋其他視窗」的問題 桌面不斷彈出覆蓋其他視窗 medusa 找不到 ssh module 中文文案排版指北 BugBounty Playbook 小知識 透過 Ubuntu 26 設定 Windows 11 雙系統並使用 Image Recovery 之踩坑全紀錄 透過 Ubuntu 26 設定 Windows 11 雙系統並使用 Image Recovery 之踩坑全紀錄 清除 git history 中的機敏資料
396. Rotate Function
2026-05-02 · via ABB00717

https://leetcode.com/problems/rotate-function?envType=daily-question&envId=2026-05-01

瞪眼看一下,很快就能發現規律了:

from typing import List
 
 
class Solution:
    def maxRotateFunction(self, nums: List[int]) -> int:
        # Calculate initial F(0) and the total sum of elements.
        # F(0) = 0 * nums[0] + 1 * nums[1] + ... + (n-1) * nums[n-1]
        # F(k) = F(k-1) + sum(nums) - n * nums[n-k]
 
        n = len(nums)
        if n == 0:
            return 0
 
        total_sum = sum(nums)
        f = sum(i * val for i, val in enumerate(nums))
        max_f = f
 
        for k in range(1, n):
            # Update F(k) based on F(k-1)
            # The last element in the previous rotation moves to the first position,
            # its coefficient changes from (n-1) to 0. All other elements' coefficients increase by 1.
            f += total_sum - n * nums[n - k]
            max_f = max(max_f, f)
 
        return max_f