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

乌鲁木齐做网站公司哪家好网络营销swot分析

乌鲁木齐做网站公司哪家好,网络营销swot分析,如何发布一个自己的网站,谷歌seo和百度seo区别#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解决方法一 三、解决方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● 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[right+1:]))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(k+1) 的最大值;否则,F(k) 就是最终答案。

总的来说,这段代码的时间复杂度为 O(n^2),空间复杂度为 O(1)。

http://www.15wanjia.com/news/39324.html

相关文章:

  • ppt制作网站如何制作一个网站
  • 国内免费ip代理手机appseo是什么岗位简称
  • 做那个的网站谁有外贸推广方式都有哪些
  • 宝安网站设计招聘信息好搜搜索引擎
  • 微网站免费软件百度的人工客服
  • opencart做网站视频seo优化托管
  • 大庆做网站找谁百度网站推广教程
  • 网站 部署 域名百度高级搜索页面的网址
  • 南通智能模板建站平台推广引流
  • 网站建设学院友情链接推广平台
  • 广州网站设计培训班有什么平台可以发广告
  • php发布wordpress文章优化大师下载安装
  • 营销类网站建设如何推广品牌
  • web开发做电商网站的全过程seo博客模板
  • 中山市建设局网站窗口电话号码成品影视app开发
  • 注册一个个人网站中文搜索引擎有哪些
  • 重庆网站建设公司多少钱企业管理培训课程网课
  • 秦皇岛市第一医院seo引擎优化公司
  • wordpress企业仿站重庆seo排名优化费用
  • 公司企业做网站磁力搜索器
  • 智慧党建门户网站建设方案企业如何进行网络推广
  • 营销型网站规划整合营销传播策略
  • 青岛有没有做网站的个人网页免费域名注册入口
  • wordpress 截断插件搜索优化seo
  • 深圳做电商平台网站建设关键词是什么
  • 淘宝小程序开发文档百度seo推广价格
  • 苏州网站建设要点百度广告怎么投放多少钱
  • 搭建一个网站的基本流程搜索引擎优化的核心及内容
  • 徐州做网站的公司招聘中国营销策划第一人
  • 网站等级保护测评必须做吗网络事件营销案例