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

相关新闻

终极免费音乐聚合神器:LX Music Desktop一站式解决方案

终极免费音乐聚合神器:LX Music Desktop一站式解决方案

终极免费音乐聚合神器:LX Music Desktop一站式解决方案 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 你是否厌倦了在多个音乐平台间反复切换?是否被各大…

2026/7/11 13:12:33 阅读更多 →
手机版 MT5 如何添加技术指标?

手机版 MT5 如何添加技术指标?

在手机版 MT5 中,Android 和 iOS 系统都支持为图表添加技术指标。常见指标如均线、MACD、RSI、布林带等,都可以直接在图表页面中添加,用于辅助行情分析。 对于 Android 版 MT5(mt5-zc.com),用户可以先进入某…

2026/7/11 13:08:32 阅读更多 →
3个必知技巧:用Wayback Machine浏览器扩展保存网页历史 [特殊字符]

3个必知技巧:用Wayback Machine浏览器扩展保存网页历史 [特殊字符]

3个必知技巧:用Wayback Machine浏览器扩展保存网页历史 📚 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webext…

2026/7/11 13:06:31 阅读更多 →

最新新闻

为什么很多 Agent 项目,最后都卡在了工程化?

为什么很多 Agent 项目,最后都卡在了工程化?

不是 996 那种身体上的累,是那种“刚学会 LangChain,Claude Code 就出来了;刚摸透 Claude Code,OpenClaw 又刷屏了”的心累。我身边很多同事,包括我自己,都陷入了这种“越追越废”的怪圈。 所有人都在疯狂地…

2026/7/11 13:45:03 阅读更多 →
FanControl终极指南:免费开源的风扇控制神器,打造完美散热与静音平衡

FanControl终极指南:免费开源的风扇控制神器,打造完美散热与静音平衡

FanControl终极指南:免费开源的风扇控制神器,打造完美散热与静音平衡 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitco…

2026/7/11 13:43:03 阅读更多 →
简单上手:5分钟学会使用NVIDIA Qwen3.5-397B-A17B-NVFP4-V2进行推理

简单上手:5分钟学会使用NVIDIA Qwen3.5-397B-A17B-NVFP4-V2进行推理

简单上手:5分钟学会使用NVIDIA Qwen3.5-397B-A17B-NVFP4-V2进行推理 【免费下载链接】Qwen3.5-397B-A17B-NVFP4-V2 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/Qwen3.5-397B-A17B-NVFP4-V2 🚀 NVIDIA Qwen3.5-397B-A17B-NVFP4-V2 是一…

2026/7/11 13:41:03 阅读更多 →
5分钟搞定!国家中小学智慧教育平台电子课本终极下载神器

5分钟搞定!国家中小学智慧教育平台电子课本终极下载神器

5分钟搞定!国家中小学智慧教育平台电子课本终极下载神器 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地…

2026/7/11 13:41:03 阅读更多 →
如何高效使用开源抖音下载工具:完整实战指南与场景矩阵

如何高效使用开源抖音下载工具:完整实战指南与场景矩阵

如何高效使用开源抖音下载工具:完整实战指南与场景矩阵 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…

2026/7/11 13:39:02 阅读更多 →
抖音批量下载终极指南:3分钟掌握高效内容管理技巧

抖音批量下载终极指南:3分钟掌握高效内容管理技巧

抖音批量下载终极指南:3分钟掌握高效内容管理技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …

2026/7/11 13:39:02 阅读更多 →

日新闻

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:02:12 阅读更多 →
PIC18F45K42驱动EPT-14A4005P压电蜂鸣器方案详解

PIC18F45K42驱动EPT-14A4005P压电蜂鸣器方案详解

1. 项目背景与核心需求 在工业控制、安防系统和智能家居等领域,可靠的声音警报系统是不可或缺的基础组件。传统蜂鸣器存在音量不足、音质模糊等问题,而基于压电陶瓷技术的EPT-14A4005P蜂鸣器配合PIC18F45K42微控制器,能够构建一套适应性强、音…

2026/7/11 0:04:12 阅读更多 →
大模型推理中的算子融合优化:LayerNorm + Attention 的 CUDA Kernel 手写与验证

大模型推理中的算子融合优化:LayerNorm + Attention 的 CUDA Kernel 手写与验证

大模型推理中的算子融合优化:LayerNorm Attention 的 CUDA Kernel 手写与验证 一、GPU 利用率 30%:分开的算子吃掉所有带宽 推理服务的 GPU 利用率监测显示一个反直觉的现象:计算核心(SM)利用率不到 30%,但…

2026/7/11 0:04:12 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/10 19:03:29 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻