2016-04-14 62 views
0

基本上我有一个这样的简单问题,我有麻烦搞清楚。我知道如何洗牌,但并不确定如何让它专门洗牌,像一个背部。混洗阵列一后

的问题是:

阵列(它是完全组装)被用作环形缓冲器。在JAVA中编写一段代码片段,将数组中的所有元素都转换回来,并将最后一个元素移动到旋转数组的前面。 (无输出)

实施例1:

INT []数组=新INT [] {1,2,3}; 数组将变为{3,1,2}

谢谢!

+1

这听起来像移位,不混洗。 – shmosel

回答

2
public int[] shiftLeft(int[] nums) { 
    if (nums == null || nums.length <= 1) { 
     return nums; 
    } 
    int start = nums[0]; 
    System.arraycopy(nums, 1, nums, 0, nums.length - 1); 
    nums[nums.length - 1] = start; 
    return nums; 
} 
0
// 1,2,3 
// 3,2,1 
// 3,1,2 

public int[] swapLastIndex(int[] array) { 
    if(array.length < 2) return array; 
    for(int i=0; i<array.length; i++) 
     swap(i, array.length-1);  
    return array; 
} 

private void swap(int x, int y) { 
    int tmp = array[x]; 
    array[x] = array[y]; 
    array[y] = tmp; 
}