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

网页标准化对网站开发维护的好处f福州网站建设公司

网页标准化对网站开发维护的好处,f福州网站建设公司,热门的建设工程人员查询,手机网站页面如何制作189. 轮转数组 给定一个整数数组 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 步: …

189. 轮转数组

给定一个整数数组 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]


提示:
  • 1 <= nums.length <= 10⁵
  • -2³¹ <= nums[i] <= 2³¹ - 1
  • 0 <= k <= 10⁵

题解:
思路一
void rotate(int* nums, int numsSize, int k) 
{//空间换时间k = k % numsSize;int newArr[numsSize];//现将nums后面的K个数据按顺序放到newArr中去,再把剩下的数据按顺序插入到新数组中for(int i = 0; i < numsSize; i++){newArr[i] = nums[(numsSize - k + i)%numsSize];}//因为最后需要打印数组nums,所以需要赋值回去for(int i = 0; i < numsSize; i++){nums[i] = newArr[i];}
}

**结果:**不通过,时间复杂度过高,为 O ( N 2 ) O(N^2) O(N2)

思路二
void rotate(int* nums, int numsSize, int k) 
{//空间换时间k = k % numsSize;int newArr[numsSize];//现将nums后面的K个数据按顺序放到newArr中去,再把剩下的数据按顺序插入到新数组中for(int i = 0; i < numsSize; i++){newArr[i] = nums[(numsSize - k + i)%numsSize];}//因为最后需要打印数组nums,所以需要赋值回去for(int i = 0; i < numsSize; i++){nums[i] = newArr[i];}
}
void rotate(int* nums; int numsSize; int k)
{int newArr[numsSize];for(int i = 0; i < numsSize; i++){newArr[(i + k) % numsSize] = nums[i];//将后K个数组放到新数组前面,在把剩下的挪到新数组}for (int i = 0; i < numsSize; ++i) {nums[i] = newArr[i];//因为最后需要打印数组nums,所以需要赋值回去}
}

以上两组代码的代码逻辑基本一致,主要是在将数据移动到新数组时的具体实现思路不同。

//法一
k = k % numsSize;
newArr[i] = nums[(numsSize - k + i)%numsSize];//法二
newArr[(i + k) % numsSize] = nums[i];
思路三
/*
函数功能:实现一段数据的逆置
参数:nums:数组名begin:逆置数据的起始下标end:逆置数据的结束下标
返回值:无
*/
void reverse(int* nums,int begin,int end)
{while(begin<end){int tmp = nums[begin];nums[begin] = nums[end];nums[end] = tmp;begin++;end--;}
}void rotate(int* nums, int numsSize, int k)
{//防止逆置时发生数组越界k = k%numsSize;//前n-k个数据逆置reverse(nums,0,numsSize-k-1);//后k个数据逆置reverse(nums,numsSize-k,numsSize-1);//整体逆置reverse(nums,0,numsSize-1);
}

时间复杂度: O ( N ) O(N) O(N)

空间复杂度: O ( 1 ) O(1) O(1)

方法:

  • 前n - k个逆置:4 3 2 1 5 6 7
  • 后k个逆置:4 3 2 1 7 6 5
  • 整体逆置:5 6 7 1 2 3 4
http://www.dtcms.com/wzjs/552658.html

相关文章:

  • 国内品牌设计公司企业网站seo
  • 网站维护产品推介有没有做西餐的视频网站
  • 南昌网站建设搜q.479185700天津百度首页优化排名
  • 宁波网站建设哪家好设计制作效果图
  • 毕业设计做网站有什么好处长春做网站公司长春网站排名
  • 网站建设百度经验小程序定制语言
  • 网站导航html源码电子商务网站怎么做推广
  • 安徽住房城乡建设厅网站有网站如何做app
  • 建设银行大连招聘网站网页版梦幻西游决战华山奖励
  • 加盟做地方门户网站厦门做百度推广的网站
  • 医药网站素材wordpress.c0m
  • 潍坊学校网站建设丹灶网站建设
  • 在哪个网站可以搜索做凉菜视频免费商品交易网站代码下载
  • 网站开发 微盘做网站上传服务器
  • 网站模板出售安徽省网站肥建设网站
  • 电子商务网站的建设包含哪些流程中国建设银行征信网站
  • 开淘宝店怎么做充值网站嵌入式工程师能干多久
  • 最好的小说网站排名广告制作平台
  • 珠海中国建设银行招聘信息网站绍兴网站建设推广
  • 顺德营销型网站微信公众号怎么开发
  • 海南做房地产网站的网络公司材料信息价查询网站
  • 优化型网站建设的基本要求wordpress 防源码抓取
  • 网站服务器建设上海网络推广公司网站
  • 做图表的网站模板网站会影响网站优化吗
  • 建设网站用哪个主机好如何在网站上推广自己的链接
  • 批量网站建设开元酒店集团品牌建设
  • 兴国县城乡规划建设局网站就业网站建设方案
  • 融水苗族自治县网站建设公司娄底360seo优化公司
  • 网站设计中级南昌那个公司做网站好
  • 国外做做网站wordpress默认缩略图