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

做博客网站的php代码网站域名放国外

做博客网站的php代码,网站域名放国外,it培训机构一般多少钱,北京到广州防疫政策题目链接:189. 轮转数组 - 力扣(LeetCode) 思路一 我们可以在进行每次轮转的时候,先将数组的最后一个数据的值存储起来,接着将数组中前n-1个数据依次向后移,最后将存储起来的值赋给数组中的第一个数据。 …

题目链接:189. 轮转数组 - 力扣(LeetCode)

b4010cf8716749e2a2ed13d879b6894f.png

 思路一

我们可以在进行每次轮转的时候,先将数组的最后一个数据的值存储起来,接着将数组中前n-1个数据依次向后移,最后将存储起来的值赋给数组中的第一个数据。

先将数组中最后的一个元素的值存到变量tmp中,如下图

1c868d80560a4d6f9815e4f9eee76315.png

接着将数组中前n-1个数据依次向后移,如下图 

3a4a9420bb8c4e7f97820d1c10b0af0b.png

最后再将tmp中的值赋值给nums[0],如下图 

598076daacdc4613bd2011c71e66395f.png

以上图是表示一次轮转的,如果还要轮转,重复上面的操作。

代码实现

public void rotate(int[] nums, int k) {for(int i=0;i<k;i++){int tmp=nums[nums.length-1];//将前n-1个元素向后移for(int j=nums.length-1;j>0;j--){nums[j]=nums[j-1];}nums[0]=tmp;}}

当我们提交以上代码时,会发现不成功。

c7610bd1c92a45f98e77915b828ed868.png

思路是对的,但是上面代码时间复杂度为O(kn),太复杂了,超出了题目的时间限制。 

思路二

造成思路一时间复杂度太大的原因是: 思路一中有两个循环,一个循环是数组右旋的次数,另一个循环要将数组中的元素全部遍历一遍,这样当右旋次数足够多,数组中的元素很多时,效率就很低了。

思路二是k次旋转法。

下面以旋转次数为3来讲解,也就是k=3

e7d5aeee82ea4147bc2aad7c2e081bf8.png

先将数组全部旋转一遍,如下图

d3684a80c41c420bae6c4aeb997e83b1.png

再以下标为0为起始点和下标为(k%nums.length)-1为终点来旋转,如下图

ea23795aec5144ca973daa7870014b78.png

 最后以下标为(K%数组长度)为起始点和以下标为(数组长度-1)为终点来旋转数组。

f99f77338c5a49ccbc77c94e1fd59c98.png

这样就完成了数组的3次右旋。

代码实现

public void reverse(int[] nums,int start,int end){while(start<end){int tmp=nums[start];nums[start]=nums[end];nums[end]=tmp;start++;end--;}}public void rotate(int[] nums, int k) {reverse(nums,0,nums.length-1);reverse(nums,0,(k%nums.length)-1);reverse(nums,k%nums.length,nums.length-1);}

思路三

我们可以创建一个新的数组,将原数组中的数据按照数组旋转之后的的位置放置到新数组中对应的位置。最后我们再将新数组复制到原数组中就行了。

有一个公式:((i+k)%数组的长度) 的值 是 原数组中下标为i的数据 在 新数组中的位置。

其中i为原数组中数据的小标,k为旋转次数。 

理解公式:

假如数组向右旋转k,也就是让数组中的数据向右移动k个位置,但是如果k大于数组长度,就会越界,所以我们要%数组的长度。因为如果旋转的次数超过数组的长度,也就是旋转k次的效果和k减去数组的长度次的效果是一样的。

代码实现

public void rotate(int[] nums, int k) {int n=nums.length;//创建一个新数组jianint[] newNums=new int[n];//将原数组中的数据放到新数组中for(int i=0;i<n;i++){newNums[(i+k)%n]=nums[i];}//将新数组复制到原数组System.arraycopy(newNums,0,nums,0,n);}

http://www.laogonggong.com/news/85991.html

相关文章:

  • 关于网站建设的英文书籍数字化营销平台有哪些
  • 如何搭建购物网站博客的网站页面设计
  • dedecms 网站还原数据之后 乱码wordpress 函数大全
  • 南京环力建设有限公司网站漫画网站怎么做
  • 湛江企业网站建设公司html5 电商网站模板
  • 郑州汉狮专业做网站公司网站会员注册模板
  • 有关网站建设的app长沙市有什么好玩的旅游景点
  • app和网站开发语言的区别网址查询工具
  • 江门网站建设方案优化上海外贸市场有哪些
  • 南通网站排名百度网站名称
  • 卖文具做网站好还是做电商好网站制作论文总结
  • 怎么做html网站pc网站开发微信支付
  • 汉中专业网站建设公司wordpress 插件 查看
  • 商城网站推广方案做卖蜂蜜的网站计划书
  • 石家庄市工程建设造价管理站网站网站流量排名
  • 旅游网站的网页设计参考文献展示型的网站开发价格
  • pc网页游戏网站网站开发开发公司排名
  • 电影网站html代码wordpress增加英文
  • 做社交网站app界面怎么制作的
  • 焦作网站建设公司排名深圳市宣传片制作公司
  • 广州白云区网站建设公司网页编辑怎么打开
  • 网站制作属于什么行业河南省城乡建设信息网
  • 郑州网站seo优化公司ceo是什么职位什么工作
  • 网站如何做抖音推广wordpress 结构化数据库
  • 服装公司网站策划方案百度地图嵌入wordpress
  • 广州做网站建设的公司seo的工作内容主要包括
  • 静态网站做毕业设计网站做导航条
  • 网站设计公司哪家专业灵感关键词生成器
  • 单页网站还能用吗网络平台搭建
  • 青岛seo网站推广个人域名备案流程