我想解决的问题如下: -
给定一个整数长度为3的数组,返回一个元素"向左旋转"的数组,因此{1,2,3}产生{2,3,1}
我想出了以下代码: -
public int[] rotateLeft3(int[] nums) {
for(int i=0;i<2;i++)
swap(nums[i],nums[i+1]);
return nums;
}
public void swap(int a,int b)
{
int temp = a;
a = b;
b= temp;
}
Run Code Online (Sandbox Code Playgroud)
但是,它未成功运行.在C++的情况下,我可以将引用作为参数传递,问题将被排序,那么为什么不在这里发生?
以下代码正在运行: -
public int[] rotateLeft3(int[] nums) {
int temp = nums[0];
nums[0] = nums[1];
nums[1] = temp;
temp = nums[1];
nums[1] = nums[2];
nums[2] = temp;
return nums;
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码是完整的蛮力写作,我不是很喜欢它.你能否建议我如何让第一种方法起作用?
java方法调用中的所有参数都按值传递.您需要传入数组和要交换的两个索引.
public void swap(int[] array, int a,int b)
{
int temp = array[a];
array[a] = array[b];
array[b]= temp;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |