反转数组的元素

Sno*_*man 0 java arrays

给定一个数组a和另外两个int变量k和temp,写一个反转数组元素的循环.

for (k = 0; k < a.length-1; k++) {
  temp = a[k];
  a[k] = a[a.length-1-k];
  a[a.length-1-k] = temp;
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.知道为什么吗?

Nik*_*bak 7

例如,为a = [0, 1, 2, 3, 4, 5]你切换05两次:当i == 0和时i == 5.这种双重切换将使两个元素都处于原始位置:(0, 5) -> (5, 0) -> (0, 5).

尝试让你的循环只通过一半的数组:所以每对切换一次.