三分钟带你读懂:旋转函数 我们先来看题目描述给定一个长度为 n 的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组我们定义 nums 的 旋转函数 F 为F(k) 0 * arrk[0] 1 * arrk[1] ... (n - 1) * arrk[n - 1]返回 F(0), F(1), ..., F(n-1) 中的最大值 。生成的测试用例让答案符合 32 位 整数。示例 1输入: nums [4,3,2,6] 输出: 26 解释: F(0) (0 * 4) (1 * 3) (2 * 2) (3 * 6) 0 3 4 18 25 F(1) (0 * 6) (1 * 4) (2 * 3) (3 * 2) 0 4 6 6 16 F(2) (0 * 2) (1 * 6) (2 * 4) (3 * 3) 0 6 8 9 23 F(3) (0 * 3) (1 * 2) (2 * 6) (3 * 4) 0 2 12 12 26 所以 F(0), F(1), F(2), F(3) 中的最大值是 F(3) 26 。示例 2输入: nums [100] 输出: 0提示n nums.length1 n 105-100 nums[i] 100解决方案方法迭代思路和算法记数组 nums 的元素之和为 numSum。根据公式可以得到F(0) 0 × nums[0] 1 × nums[1] …(n−1) × nums[n−1]F(1)1 × nums[0] 2 × nums[1] … 0 × nums[n−1] F(0) numSum − n × nums[n−1]更一般地当1 ≤ k n 时F(k) F(k−1) numSum − n × nums[n−k]。我们可以不停迭代计算出不同的 F(k)并求出最大值。代码Python3class Solution: def maxRotateFunction(self, nums: List[int]) - int: f, n, numSum 0, len(nums), sum(nums) for i, num in enumerate(nums): f i * num res f for i in range(n - 1, 0, -1): f f numSum - n * nums[i] res max(res, f) return resJavaclass Solution { public int maxRotateFunction(int[] nums) { int f 0, n nums.length, numSum Arrays.stream(nums).sum(); for (int i 0; i n; i) { f i * nums[i]; } int res f; for (int i n - 1; i 0; i--) { f numSum - n * nums[i]; res Math.max(res, f); } return res; } }C#public class Solution { public int MaxRotateFunction(int[] nums) { int f 0, n nums.Length, numSum nums.Sum(); for (int i 0; i n; i) { f i * nums[i]; } int res f; for (int i n - 1; i 0; i--) { f numSum - n * nums[i]; res Math.Max(res, f); } return res; } }复杂度分析时间复杂度O(n)其中 n 是数组 nums 的长度。计算 numSum 和第一个 f 消耗 O(n) 时间后续迭代 n−1 次 f 消耗 O(n) 时间。空间复杂度O(1)。仅使用常数空间。

相关新闻

最新新闻

工业负载控制方案:TPD2017FN与STM32F745VG应用指南

工业负载控制方案:TPD2017FN与STM32F745VG应用指南

1. 工业负载控制方案选型背景在工业自动化领域,控制电感和电阻负载是常见需求。电磁阀、继电器线圈、电机绕组等感性负载,以及加热器、照明设备等阻性负载,都需要可靠的开光控制方案。传统机械继电器存在寿命短、响应慢的问题,而普…

2026/7/11 15:16:32
Ubuntu 24.04 PWN与渗透测试环境搭建:从虚拟机配置到工具链部署

Ubuntu 24.04 PWN与渗透测试环境搭建:从虚拟机配置到工具链部署

1. 项目概述与核心价值最近在折腾CTF的PWN题和渗透测试环境,发现很多新手朋友卡在了第一步——搭建一个稳定、好用的Linux实验环境上。要么是虚拟机安装不顺利,要么是工具链装不全,要么是环境配置好了但用起来各种别扭。我花了几天时间&#…

2026/7/11 15:16:32
Gemini 3.1 Pro 前端工程能力压力测试:九道真题暴露AI代码落地短板

Gemini 3.1 Pro 前端工程能力压力测试:九道真题暴露AI代码落地短板

1. 项目概述:一次严肃的 Gemini 3.1 Pro 前端工程能力压力测试 我干了十年前端,从 jQuery 时代写到 WebAssembly,带过三支全栈团队,也亲手把五个 SaaS 产品从零推到百万 DAU。过去两年,我几乎把市面上所有主流大模型在…

2026/7/11 15:16:32
3个简单方案:让魔兽争霸3在Windows 11上流畅运行的完整指南

3个简单方案:让魔兽争霸3在Windows 11上流畅运行的完整指南

3个简单方案:让魔兽争霸3在Windows 11上流畅运行的完整指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windows 11上…

2026/7/11 15:16:32
SteamEmulator:彻底改变局域网游戏体验的终极解决方案

SteamEmulator:彻底改变局域网游戏体验的终极解决方案

SteamEmulator:彻底改变局域网游戏体验的终极解决方案 【免费下载链接】SteamEmulator MIRROR REPO - Credits : Mr. Goldberg. Steam emulator that emulates Steam online features. Lets you play games that use the Steam multiplayer APIs on a LAN without s…

2026/7/11 15:16:32
伊利、蒙牛、光明、新希望、飞鹤:乳业大洗牌,谁在穿越周期?

伊利、蒙牛、光明、新希望、飞鹤:乳业大洗牌,谁在穿越周期?

一场以原奶过剩和消费需求疲软为双重夹击,正在重写中国乳业的格局。据国家统计局数据,去年我国原料奶总产量达4091万吨,同比增长0.3%,但终端市场消费能力不强,导致乳制品整体产量下降了1.1%。同时,国内乳制…

2026/7/11 15:11:31

月新闻