三分钟带你读懂:旋转函数 我们先来看题目描述给定一个长度为 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)。仅使用常数空间。

相关新闻

最新新闻

基于AT89C51的音乐喷泉控制系统:从音频采集到PWM驱动的完整实现

基于AT89C51的音乐喷泉控制系统:从音频采集到PWM驱动的完整实现

1. 项目缘起:从“看热闹”到“动手做”的转变几年前在公园里看到音乐喷泉,水柱随着旋律起伏跳跃,当时只觉得好看,心里琢磨着这玩意儿是怎么让水和音乐同步的。后来自己捣鼓单片机,从点灯、按键开始,慢慢接触…

2026/8/28 21:30:40
蓝桥杯真题解析:从个人所得税计算看边界条件与浮点数精度处理

蓝桥杯真题解析:从个人所得税计算看边界条件与浮点数精度处理

1. 项目概述:从一道蓝桥杯真题看编程中的“边界”与“精度” 最近在整理蓝桥杯的历年真题,翻到了这道ALGO-465“计算税额”。乍一看,这题目平平无奇,不就是根据收入分段计算个人所得税嘛,很多编程入门书里都有类似的“…

2026/8/28 21:30:40
具身智能投资转向:聪明的钱为何押注量产、场景与供应链

具身智能投资转向:聪明的钱为何押注量产、场景与供应链

具身智能这条赛道,从2023年开始就一直是科技投资圈的高频词。但热度高不代表每一笔钱都聪明,更不代表所有拿到融资的公司都站在同一条起跑线上。我观察了这两年的人形机器人、机械臂、四足机器人、灵巧手以及具身大模型项目,发现一个明显趋势…

2026/8/28 21:30:40
苹果CMS建站实战:麻豆MDYS14模板搭建油条视频全攻略

苹果CMS建站实战:麻豆MDYS14模板搭建油条视频全攻略

简介:内容管理系统(CMS)是快速构建动态网站的核心工具,它能将数据存储、前台渲染和后台维护解耦,让非程序员也能高效管理内容。以苹果CMS为例,它基于PHP和MySQL,通过MVC架构与模板标签引擎&…

2026/8/28 21:30:40
苹果CMS影视网站搭建全流程:从环境配置到模板部署

苹果CMS影视网站搭建全流程:从环境配置到模板部署

简介:内容管理系统是搭建视频网站的核心,苹果CMS作为国内流行的开源视频内容管理系统,支持自定义模板和采集功能。文章从服务器环境(LNMP)准备开始,讲解PHP参数调整、Nginx伪静态规则、数据库配置等基础原理…

2026/8/28 21:30:40
认知系统的模块化工程:从Method到功能模块的映射理论与架构设计

认知系统的模块化工程:从Method到功能模块的映射理论与架构设计

认知系统的模块化工程:从Method到功能模块的映射理论与架构设计作者:东塬一老翁技术:WSaiOS多模态智能技术研发工作室技术摘要: 在构建具备通用认知能力的智能系统时,理论认知模型与工程软件实现之间存在显著鸿沟。本文…

2026/8/28 21:25:40