当前位置: 首页 > news >正文

湛江网站建设开发烟台手机网站建设电话

湛江网站建设开发,烟台手机网站建设电话,网页制作软件培训,长沙网警#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解决方法一 三、解决方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Shar…#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解决方法一 三、解决方法二  关于 ARTS 的释义 —— 每周完成一个 ARTS ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享一篇有观点和思考的技术文章 希望通过此次活动能聚集一波热爱技术的人延续好奇、探索、实践、分享的精神。 一、题目 给定一个长度为 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.length 1 n 105 -100 nums[i] 100 二、解决方法一 class Solution:def maxRotateFunction(self, nums: List[int]) - int:n len(nums)f [0] * nfor i in range(n):cur nums[i]f[i] cur * (i 1)res f[0]for i in range(1, n):res max(res, f[i] f[i - 1])return res这段代码实现了一个函数 maxRotateFunction,用于计算给定整数数组 nums 顺时针旋转 k 个位置后所有旋转后的数组元素之和的最大值。 具体实现过程如下 1. 首先定义一个长度为 n 的列表 f,其中 f[i] 表示将数组 nums 顺时针旋转 i 个位置后所有元素之和。初始时f[i] i * nums[i]。 2. 然后遍历整个数组 nums,依次计算出每个位置的旋转后元素之和并将其保存到列表 f 中。 3. 最后从头开始遍历列表 f,找到其中的最大值即可。因为每次旋转都会使数组中的某个元素变为零所以最大的旋转后元素之和就是第一个元素加上最后一个元素的值乘以数组长度减一。因此最终返回的是 f[0] f[n-1] 的最大值。 总的来说这段代码的时间复杂度为 O(n),空间复杂度为 O(1)。 三、解决方法二  class Solution:def maxRotateFunction(self, nums: List[int]) - int:n len(nums)f [0] * nfor i in range(n):cur nums[i]f[i] cur * (i 1)res f[0]for i in range(1, n):# 将数组分为两部分前半部分为递增序列后半部分为递减序列left, right 0, i - 1while left right:# 如果当前元素小于它的下一个元素说明它应该在后半部分if nums[left] nums[right]:break# 否则将它移动到前半部分temp nums[left]nums[left] nums[right]nums[right] templeft 1right - 1# 计算前半部分和后半部分的元素之和并更新最大值res max(res, f[i] sum(f[:left]) sum(f[right1:]))return res这段代码实现了一个函数 maxRotateFunction,用于计算给定整数数组 nums 顺时针旋转 k 个位置后所有旋转后的数组元素之和的最大值。 具体实现过程如下 1. 首先定义一个长度为 n 的列表 f,其中 f[i] 表示将数组 nums 顺时针旋转 i 个位置后所有元素之和。初始时f[i] i * nums[i]。 2. 然后遍历整个数组 nums,依次计算出每个位置的旋转后元素之和并将其保存到列表 f 中。 3. 对于数组中的每个元素我们可以将其分为两部分前半部分为递增序列后半部分为递减序列。具体来说我们从数组的两端开始向中间扫描如果当前元素小于它的下一个元素说明它应该在后半部分否则将它移动到前半部分。这个过程可以用双指针法实现。 4. 将数组分为两部分后我们可以计算出前半部分和后半部分的元素之和并更新最大值 res。具体来说我们可以将前半部分的元素之和求出来然后加上后半部分的元素之和即可。 5. 如果旋转次数 k 小于等于数组长度 n,则将问题转化为求解 F(k1) 的最大值否则F(k) 就是最终答案。 总的来说这段代码的时间复杂度为 O(n^2),空间复杂度为 O(1)。
http://www.hkea.cn/news/14412414/

相关文章:

  • 公司网站打开显示建设中西安百度推广开户
  • 2017网站建设报价单房产信息网网址
  • 门户网站建设服务收费深圳市房地产信息平台官网
  • 自己学习建设网站响应式网站用什么工具
  • 阳泉建设公司网站小程序定制开发深圳
  • 如何建设 linux 网站建设旅游门户网站
  • js网站开发视频教程wordpress文章点赞
  • 深圳分销网站建设湖南做网站 f磐石网络
  • 双语网站模板下载网站怎么做移动适配
  • 单页淘宝客网站2014年行吗成都高端品牌网站建设
  • 广东做网站公司大一网页设计期末作品
  • 网站里面的图片做桌面不清晰下载jsp网站开发用啥工具
  • 做暧暧视频网站在线网站怎么换域名
  • 五站合一网站建设公司网建设单位
  • 网站建设公司 上用php写的网站有哪些
  • 招投标网站的建设制作衡阳衡南网站建设
  • 求个网站你懂我意思是家具营销型网站
  • 做搜狗pc网站点建设通网站官网登录
  • 敬请期待用英语怎么说seo网站后台管理
  • 专业网站设计师去哪找wordpress图片页面
  • 做网络推广选择网站网站开发中英文版如何写
  • 誉重网站建设企业建设网站项目背景
  • 鞋子网站建设规划书安阳官网网站快速排名推广
  • 网站如何做担保交易安庆网站建设推荐秒搜科技
  • 优惠建网站wordpress 开发框架
  • 购买网站模版可以自己做吗0建设营销型网站步骤
  • 无锡网站北京建设网站圣辉友联
  • wordpress站点网址网站制作公司中
  • 网站推广站群wordpress循环分类子分类与文章
  • 牡丹江地区做网站的公司校园网站建设的背景