Hackerrank Solution - Array Reversal:
Welcome back, Guys!!
Since arrays store there values in contagious memory location i.e one after the other . So to reverse the order of array, we should start from highest index (size -1) to lowest index (i.e 0).
/*
Please read the code and try to anaylise it .
In this post, we will solve the Array Reversal Hackerrank problem.
The problem Statement For Hackerrank Array Reversal problem is as follows :
Given an array, of size , reverse it.
Example:
If array, , after reversing it, the array should be, .
Input
Format
The first
line contains an integer, n, denoting the size of the array. The next line
contains n space-separated integers denoting the elements of the
array.
Constraints
1<= n <=
1000
1<= arri
<= 1000 , where arri is the ith element
of the array.
Output
Format
The output is handled by the code
given in the editor, which would print the array.
Sample
Input 0
6
16
13 7 2 1 12
Sample
Output 0
12 1
2 7 13 16
Explanation
0
Given
array, =[16, 13, 7 ,2, 1, 12] . After reversing the
array, = [12 ,1 ,2 ,7 ,13 ,16 ]
Sample
Input 1
7
1 13
15 20 12 13 2
Sample
Output 1
2 13
12 20 15 13 1
Sample
Input 2
8
15 5
16 15 17 11 5 11
Sample
Output 2
11 5
11 17 15 16 5 15
The solution code for Hackerrank Array Reversal problem is as follows :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, *arr, i;
scanf("%d", &num);
arr = (int*) malloc(num * sizeof(int));
//or u can also use 'int arr[num];'or calloc func
for(i = 0; i < num; i++) {
scanf("%d", arr + i);
}
/* Write the logic to reverse the array. */
/*
for(i = num-1; i >= 0; i--)
printf("%d ", *(arr + i));
it is wrong if you are doing this as you aren't reversing the array
*/
int s=0,e=n-1;
while(s<e)
{
int t=a[s];
a[s]=a[e];
a[e]=t;
s++;
e--;
}
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
Feel free to share your thoughts and doubts in the comment section below.
See you next time.
1 Comments
Array Reversal in C – Hacker Rank Solution
ReplyDeletehttps://www.codeworld19.com/array-reversal-in-c-hacker-rank-solution/