如何返回第一个和最后一个数字交换的数组?

时间:2015-04-14 05:57:20

标签: java arrays

您好我正在学习java并且真的很新..

给定一组int,交换数组中的第一个和最后一个元素。返回修改后的数组

swapEnds({1, 2, 3, 4}) → {4, 2, 3, 1}

我所做的就是请帮助

public int[] swapEnds(int[] nums) {
if (nums.length > 1) {
  return new int[] {nums[nums.length-1], nums[0]};
  }
  else return nums;
}

我想知道我应该写什么ibetween(“num.length-1”和“nums [0]”)

我知道这对你们很多人来说可能很简单,但我只是想学习,所以请帮忙。

提前致谢。

7 个答案:

答案 0 :(得分:6)

看起来您被要求返回修改后的数组,而不是创建新数组。只需交换输入数组的第一个和最后一个元素并将其返回。

public int[] swapEnds(int[] nums) 
{
    if (nums != null && nums.length > 1) {
        int temp = nums[0];
        nums[0] = nums[nums.length-1];
        nums[nums.length-1] = temp;
    }
    return nums;
}

答案 1 :(得分:1)

假设无法对其进行编辑:

public int[] swapEnds(int[] nums) {
  int[] res = (int[])nums.clone();

  if (nums.length > 1) {
    int tmp = res[0];
    res[0] = res[res.length - 1];
    res[res.length - 1] = tmp;
  }

  return res;
}

请注意,这仅适用于值类型,因为使用clone()

如果应该编辑原始数组:

public int[] swapEnds(int[] nums) {
  if (nums.length > 1) {
    int tmp = nums[0];
    nums[0] = nums[nums.length - 1];
    nums[nums.length - 1] = tmp;
  }

  return nums;
}

答案 2 :(得分:1)

引入一个临时变量。

public int[] swapEnds(int[] nums) {
if (nums.length > 1) {
  int temp = nums[0];
  nums[0] = nums[nums.length - 1];
  nums[nums.length - 1] = temp;
  }
return nums;
}

答案 3 :(得分:0)

public static void swapEnds(int[] arr) {
    swap(arr, 0, arr.length-1);
}

public static void swap(int[] arr, int i, int j) {
    int tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
}

答案 4 :(得分:0)

请在交换前使用之间的临时变量。

    if (nums.length > 1) {
        int tempInt = nums[nums.length - 1];
        nums[nums.length - 1] = nums[0];
        nums[0] = tempInt;
        return nums;
    }

答案 5 :(得分:0)

此代码可以正常工作:-

public int[] swapEnds(int[] nums) {
  int[] myArray=new int[nums.length];
  int c=0;
  c=nums[0];
  nums[0]=nums[nums.length-1];
  nums[nums.length-1]=c;
  return nums;
}

答案 6 :(得分:0)

    public int[] swapEnds(int[] nums) {
     int res[]=new int [nums.length];
     if(nums.length>1) {
       for(int i=1; i<nums.length-1; i++) {
          res[i]=nums[i];
       }
       res[0]=nums[nums.length-1];
       res[res.length-1]=nums[0];
       return res;
     } else {
        return nums;
    }
  }