目录
数组的复制、截取:
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.轮转数组)的全部内容了,希望能对你有所帮助!