您好我正在学习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]”)
我知道这对你们很多人来说可能很简单,但我只是想学习,所以请帮忙。
提前致谢。
答案 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;
}
}