当前位置: 首页> 教育> 就业 > 管理培训班_下载gs甘肃人社_指数函数运算法则_seo管理工具

管理培训班_下载gs甘肃人社_指数函数运算法则_seo管理工具

时间:2025/7/13 13:33:30来源:https://blog.csdn.net/iiiiiankor/article/details/144592488 浏览次数:0次
管理培训班_下载gs甘肃人社_指数函数运算法则_seo管理工具

在这里插入图片描述

LeetCode刷题记录
  • 🌐 我的博客主页:iiiiiankor
  • 🎯 如果你觉得我的内容对你有帮助,不妨点个赞👍、留个评论✍,或者收藏⭐,让我们一起进步!
  • 📝 专栏系列:LeetCode 刷题日志
  • 🌱 文章内容来自我的学习与实践经验,如果你有任何想法或问题,欢迎随时在评论区交流讨论。让我们一起探索更多的可能!🚀

文章目录

    • 📜题目描述
    • 💡解题思路
    • C++代码


📜题目描述

  1. 旋转函数
    难度:中等

给定一个长度为 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

💡解题思路

最直接的思路就是,直接一个个旋转尝试,直到找到最大值,但是看这一题的难度也就知道了,暴力的方法肯定通过不了,复杂度太高了!
没错就是直接套入公式. 然后进行相减,就会发现有很多项直接消掉了!
尝试把所给公式代入具体值
在这里插入图片描述
F(2) - F(1) = sum{ arr[i] } - arr[n-2] * n
由上面归纳可以得到
F(K) - F(K-1) = sum(arr[i]) - n*arr[n-K] (k>=1)
因此可以通过迭代求出每一个F(K),找出最大值即可
其中F(0)可以首先求出,作为max的初始值

C++代码

class Solution {  
public:  int maxRotateFunction(vector<int>& nums) {  // F(k) = F(k-1) + sum - nums[n-k]  int sum = 0;  int Fk = 0;  // 计算 sum 和初始 F(0)  for (size_t i = 0; i < nums.size(); ++i) {  sum += nums[i];          // 计算 sum  Fk += i * nums[i];      // 计算 F(0)  }  int max = Fk;  // 计算 F(k) 对于 k = 1 到 n-1  for (size_t i = 1; i < nums.size(); ++i) {  Fk = Fk + sum - nums.size() * nums[nums.size() - i]; // F(k) 计算  if (Fk > max) {  max = Fk; // 更新最大值  }  }  return max;  }  
};
关键字:管理培训班_下载gs甘肃人社_指数函数运算法则_seo管理工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: