IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 给定一个数组nums,将数组中的元素向右移动k个位置,其中k是非负数。 -> 正文阅读

[开发测试]给定一个数组nums,将数组中的元素向右移动k个位置,其中k是非负数。

方法1:保存数组中最后一个数,将其他数向后移动一位,再将保存的数赋值给数组的第一个数。重复k次


rotate(int* nums,int numsSize,int k)
{
while(k--)
{
	int tmp =0;
	tmp=nums[numsSize-1];
	int end =0;
	for(end = numsSize-2;end>=0;end--)
	{
		nums[end+1]=nums[end];
	}
	nums[0]=tmp;
}
}

但如果测试用例的数组元素过多,则使用的时间会过长。O(k*n)

方法2:先将后k个数组元素逆置,再将前k个数组元素逆置,最后整体再逆置一次。

//Reverse函数用来进行逆置
void Reverse(int* nums, int left, int right)
{
	while (left < right)
	{
		int tmp = nums[left];
		nums[left] = nums[right];
		nums[right] = tmp;
		left++;
		right--;
	}
}
//当k大于数组的元素个数时,会发生内存越界。
//又因为当逆置的元素k等于数组的元素个数时,不变。所以当k>numsSize时,用k模numsSize,得到的值为实际需要移动的位置个数。
void rotate(int* nums, int numsSize, int k)
{
	if (k > numsSize)
	{
		k %= numsSize;
	}
	//第一次逆置后k个元素
	Reverse(nums, numsSize - k, numsSize - 1);
	//第二次逆置前K个元素
	Reverse(nums, 0, numsSize - k - 1);
	//第三次将整体再次逆置
	Reverse(nums, 0, numsSize - 1);
}

这个方法的空间复杂度、时间复杂度都为为O(1);

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:30:46  更:2021-08-04 11:31:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:49:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码