当前位置: 首页> 科技> 名企 > 义乌做站外推广的公司_手机室内设计软件_手机app免费制作平台_好的网站或网页

义乌做站外推广的公司_手机室内设计软件_手机app免费制作平台_好的网站或网页

时间:2025/9/4 20:32:59来源:https://blog.csdn.net/m0_62909831/article/details/144337194 浏览次数:0次
义乌做站外推广的公司_手机室内设计软件_手机app免费制作平台_好的网站或网页

题目描述:

给定一个整数数组 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为例,如下图:

由于题目没有规定k一定小于n,轮转 n 次等于没有轮转,轮转 n+1 等于轮转 1 次,依此类推,轮转 k 次等于轮转 k % n 次。

实现代码:

class Solution {public void rotate(int[] nums, int k) {int n = nums.length;k %= n;reverse(nums,0,n-1);reverse(nums,0,k-1);reverse(nums,k,n-1);}private void reverse(int[] nums,int i,int j){while(i < j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;i++;j--;}}
}

 

关键字:义乌做站外推广的公司_手机室内设计软件_手机app免费制作平台_好的网站或网页

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: