public void rotate(int[] nums, int k) {
}
用 Syst.arraycopy
五个参数是
System.arraycopy(nums, length - step, temp, 0, step);
nums
:源数组,即要从中复制元素的数组。length - step
:源数组的起始位置,即从哪个索引开始复制。temp
:目标数组,即复制后的元素要放到哪个数组中。0
:目标数组的起始位置,即从哪个索引开始放置复制的元素。step
:要复制的元素个数。
所以就是先把后半部分移动到tmp中,
nums,length-k,tmp,0,k
然后把前半部分放到后面
nums,0,tmp,k,length-k
然后再把tmp放到前面。
tmp,0,nums,0,k
就这