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

外贸企业独立建站百度指数资讯指数

外贸企业独立建站,百度指数资讯指数,网站 安全 维护,价格低怎么说#左耳听风 ARST 打卡活动重启# 目录 一、问题 二、解题方法一 三、解题方法二 四、两种方法的区别 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个…

#左耳听风 ARST 打卡活动重启#

目录

 一、问题

 二、解题方法一

 三、解题方法二

四、两种方法的区别


关于 ARTS 的释义 —— 每周完成一个 ARTS:
● Algorithm: 每周至少做一个 LeetCode 的算法题
● Review: 阅读并点评至少一篇英文技术文章
● Tips: 学习至少一个技术技巧
● Share: 分享一篇有观点和思考的技术文章

希望通过此次活动能聚集一波热爱技术的人,延续好奇、探索、实践、分享的精神。
 


 一、问题

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。   示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4] 示例 2: 输入:nums = [-1,-100,3,99], k = 2 输出:[3,99,-1,-100] 解释: 向右轮转 1 步: [99,-1,-100,3] 向右轮转 2 步: [3,99,-1,-100]

 二、解题方法一

class Solution:def rotate(self, nums: List[int], k: int) -> None:n = len(nums)k %= nnums.extend(nums[:k])nums[:k] = nums[-k:]

这段代码实现了一个函数 `rotate`,用于将给定的整数数组 `nums` 向右轮转 `k` 个位置。

函数的输入参数有两个:

- 一个整数数组 `nums`,表示需要进行旋转操作的数组。
- 一个非负整数 `k`,表示需要向右旋转的位置数。注意,这里的 `k` 取模 `n`(即 `k % n`),因为当 `k` 大于等于 `n` 时,只需要进行一次完整的旋转即可。

函数的主要思路是将数组分为两部分,前 `k` 个元素和剩余的元素,然后将这两部分分别拼接起来,得到旋转后的数组。具体实现过程如下:

1. 首先计算出数组的长度 `n`,以及对 `n` 取模的结果 `k % n`。这是因为当 `k` 大于等于 `n` 时,只需要进行一次完整的旋转即可。

2. 然后使用列表的 `extend()` 方法,在数组末尾添加前 `k` 个元素。这样就得到了一个新的数组,其中前 `k` 个元素为原数组的前半部分,剩余的元素为原数组的后半部分。

3. 最后使用列表切片的方式,将新数组中剩余的元素移动到前面,即可得到旋转后的数组。具体来说,我们可以将新数组中的第 `k` 个元素到最后一个元素取出,然后将其放到新数组的前半部分中对应的位置上。这样就可以完成整个旋转操作了。

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

 三、解题方法二

另一种解题方法是使用双指针法。具体来说,我们可以定义两个指针 `left` 和 `right`,分别指向数组的开头和结尾。然后进行以下操作:

1. 将 `left` 指针向右移动 `k` 个位置,直到它指向数组的第 `k` 个元素为止。
2. 将 `right` 指针向左移动 `k` 个位置,直到它指向数组的第 `n-k` 个元素为止。
3. 将 `left` 和 `right` 指针所指向的两个元素交换位置,即可完成旋转操作。

这种方法的时间复杂度为 O(n),空间复杂度为 O(1)。

 

def rotate(nums, k):n = len(nums)k %= n  # 对 n 取模,防止 k 大于等于 n 的情况left, right = 0, n - 1for _ in range(k):temp = nums[left]nums[left] = nums[right]nums[right] = templeft += 1right -= 1

四、两种方法的区别

两种方法的区别在于,单指针法只能找到一个满足条件的元素,而双指针法则可以在 O(n) 的时间复杂度内找到所有满足条件的元素。具体来说,单指针法从数组的开头开始遍历,如果找到了一个满足条件的元素,就返回该元素的位置;否则继续向后遍历,直到遍历完整个数组。而双指针法则从数组的两端开始遍历,每次移动一个指针,当两个指针相遇时,就将它们所指向的元素交换位置。这样就可以保证每个元素都被访问过一次。 

 

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

相关文章:

  • 无锡做网站哪家好防止恶意点击软件管用吗
  • 网站开发的逻辑百度号码认证平台官网首页
  • 建筑资源网站成都企业seo
  • 关于销售网站有哪些内容网络营销软件条件
  • 网站建设费用的请示百度url提交
  • 网站支付页面怎么做站长工具ip地址
  • 做零售出口的网站百度域名购买
  • 网络工程师资料长沙网站seo诊断
  • 哈尔滨网站建设公司营销咨询公司排名前十
  • 衡东网站制作新网店怎么免费推广
  • 网站定制开发加公众号考证培训机构
  • 如何搭建高访问量的网站seo网站关键词排名优化公司
  • 平面设计网上接单一个月能赚多少seo流量增加软件
  • 有网站开发经验怎么写简历四年级下册数学优化设计答案
  • 同性做视频网站百度一下首页版
  • 唐山展望网站建设站长推荐黄色
  • discuz 网站标题怎样推广自己的产品
  • 自己电脑怎么做网站收录平台
  • 网站深圳深圳seo顾问
  • 页游平台网站山西优化公司
  • 则么做网站厦门专业做优化的公司
  • 做网站 华普花园b2b平台有哪些平台
  • 创业做招聘网站靠谱吗万网域名注册查询
  • 公司 网站 源码2023年12月疫情又开始了吗
  • 个人域名免费网站百度一下官网页
  • 自己如何在网上做网站黑科技引流推广神器免费
  • 网站建设费属于哪个税种做网站好的网站建设公司
  • 做外贸仿牌都用哪些网站网站建设网络推广公司
  • 企业网站推广的方法有什么百度 seo 工具
  • 元做网站怎样能在百度上搜索到自己的店铺