目录
数组的复制、截取:
1、使用Arrays中的copyOf方法完成数组的拷贝
2、使用Arrays中的copyofRange方法完成数组的拷贝
题目链接:
数组的复制、截取:
1、使用Arrays中的copyOf方法完成数组的拷贝
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));
}
}
运行结果:
2、使用Arrays中的copyofRange方法完成数组的拷贝
与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.轮转数组)的全部内容了,希望能对你有所帮助!