给定一个大小为M x N 个整数的二维数组arr[][] ,其中M是行数, N是列数。任务是反转给定二维数组的每一行。
例子:
Input: arr[][] =
{ {1, 2, 3},
{4, 5, 6},
{7, 8, 9} }
Output:
3 2 1
6 5 4
9 8 7
Input: arr[][] =
{ {1, 2},
{4, 5},
{7, 8},
{9, 10} }
Output:
2 1
5 4
8 7
10 9
方法:
- 对于给定二维数组中的每一行,请执行以下操作:
- 将开始索引初始化为 0,将结束索引初始化为 N-1。
- 迭代循环直到开始索引小于结束索引,交换这些索引处的值并将索引更新为:
swap(arr[i][start], arr[i][end])
start++;
end--;
- 对二维数组中的所有行进行上述操作。
下面是上述方法的实现:
C++
// C++ implementation of the above approach
#include
using namespace std;
const int M = 3;
const int N = 3;
// A utility function
// to swap the two element
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
// Function to reverse
// the given 2D arr[][]
void reverseArray(int arr[M][N])
{
// Traverse each row of arr[][]
for (int i = 0; i < M; i++) {
// Initialise start and end index
int start = 0;
int end = N - 1;
// Till start < end, swap the element
// at start and end index
while (start < end) {
// Swap the element
swap(&arr[i][start],
&arr[i][end]);
// Increment start and decrement
// end for next pair of swapping
start++;
end--;
}
}
// Print the arr[][] after
// reversing every row
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
cout << arr[i][j] << ' ';
}
cout << endl;
}
}
// Driver Code
int main()
{
int arr[][3] = { { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
// Function call
reverseArray(arr);
return 0;
}
Java
// Java implementation of the above approach
class GFG{
static int M = 3;
static int N = 3;
// Function to reverse
// the given 2D arr[][]
static void reverseArray(int arr[][])
{
// Traverse each row of arr[][]
for (int i = 0; i < M; i++) {
// Initialise start and end index
int start = 0;
int end = N - 1;
// Till start < end, swap the element
// at start and end index
while (start < end) {
// Swap the element
int temp = arr[i][start];
arr[i][start] = arr[i][end];
arr[i][end] = temp;
// Increment start and decrement
// end for next pair of swapping
start++;
end--;
}
}
// Print the arr[][] after
// reversing every row
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
// Driver Code
public static void main(String[] args)
{
int arr[][] = { { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
// Function call
reverseArray(arr);
}
}
// This code is contributed by PrinciRaj1992
Python3
# Python3 implementation of the above approach
M = 3;N = 3;
# Function to reverse
# the given 2D arr[][]
def reverseArray(arr) :
# Traverse each row of arr[][]
for i in range(M) :
# Initialise start and end index
start = 0;
end = N - 1;
# Till start < end, swap the element
# at start and end index
while (start < end) :
# Swap the element
arr[i][start], arr[i][end] = arr[i][end], arr[i][start];
# Increment start and decrement
# end for next pair of swapping
start += 1;
end -= 1;
# Print the arr[][] after
# reversing every row
for i in range(M) :
for j in range(N) :
print(arr[i][j],end= ' ');
print();
# Driver Code
if __name__ == "__main__" :
arr = [ [ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ] ];
# Function call
reverseArray(arr);
# This code is contributed by AnkitRai01
C#
// C# implementation of the above approach
using System;
class GFG{
static int M = 3;
static int N = 3;
// Function to reverse
// the given 2D [,]arr
static void reverseArray(int [,]arr)
{
// Traverse each row of [,]arr
for (int i = 0; i < M; i++) {
// Initialise start and end index
int start = 0;
int end = N - 1;
// Till start < end, swap the element
// at start and end index
while (start < end) {
// Swap the element
int temp = arr[i,start];
arr[i, start] = arr[i, end];
arr[i, end] = temp;
// Increment start and decrement
// end for next pair of swapping
start++;
end--;
}
}
// Print the [,]arr after
// reversing every row
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
Console.Write(arr[i, j] + " ");
}
Console.WriteLine();
}
}
// Driver Code
public static void Main(String[] args)
{
int [,]arr = { { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } };
// Function call
reverseArray(arr);
}
}
// This code is contributed by PrinciRaj1992
Javascript
输出:
3 2 1
6 5 4
9 8 7
如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live