2、使用Arrays中的copyofRange方法完成数组的拷贝
public class Csdn {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
int[] newArr;
newArr = Arrays.copyOf(arr,arr.length);
System.out.println(Arrays.toString(newArr));
}
}
运行结果:
与copyOf不同的是,copyofRange 可以指定拷贝位置
public class Csdn {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
int[] newArr;
newArr = Arrays.copyOfRange(arr,2,arr.length);
System.out.println(Arrays.toString(newArr));
}
}
运行结果:
力扣(LeetCode)官网 – 全球极客挚爱的技术成长平台
解题思路:
先将需要轮转的那部分截取到一个数组中,再将不需要轮转的那部分截取到另外一个数组中,最后将二者拼接到原数组中就可以得到轮转数组!
在这边用到了数组截取与数组合并。最重要的一步是 k %= nums.length;
class Solution {
public void rotate(int[] nums, int k) {
k %= nums.length;
//用cut表示需要截取的下标位置
int cut = nums.length - k ;
int[] a = Arrays.copyOfRange(nums,0,cut);
int[] b = Arrays.copyOfRange(nums,cut,nums.length);
for (int i = 0; i < b.length; i++) {
nums[i] = b[i];
}
for (int i = b.length, j = 0; j < a.length; i++,j++) {
nums[i] = a[j];
}
}
}
以上就是 Java数组的复制、截取(内含例题:力扣-189.轮转数组)的全部内容了,希望能对你有所帮助!
原文地址:https://blog.csdn.net/linsc_05/article/details/134600705
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_3696.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!