我试图从上到下翻转一个二维数组。
E.G。 1,2,3
4,5,6
7,8,9
into
7,8,9
4,5,6
1,2,3
答案 0 :(得分:1)
我不会为您提供代码,因为SO不适用于此,但我会向您展示必要的步骤:
size - index - 1
处的每一行复制到第二个数组答案 1 :(得分:0)
void flipArrays(int[][] arrays)
{
int[][] result = new int[arrays.length][arrays[0].length];
for(int i = 0; i < arrays.length; i++)
{
for(int y = 0; y < arrays[0].length; y++)
{
result[i][y] = arrays[arrays.length - i - 1][y];
}
}
}
我会指导你如何解决这个问题。您可以在Math /伪代码中执行此操作,然后将其转换为您的代码。
答案 2 :(得分:0)
您可以使用两种指针方法。
在第0行使用一个指针(只是一个整数变量),在第n-1行使用另一个指针。然后交换它们中的元素。然后递增第一个并递减第二个。直到他们指向同一行或直到第一行大于第二行,你才会这样做。
空间复杂度:O(1)
时间复杂度:O(row*col)
<强> 伪代码 强>
start := 0
end := row-1
while start < end
begin
for each colvar in [0..col-1]
swap arr[start,colvar] , arr[end,colvar]
start <- start + 1
end <- end - 1
end