Array reversal in c | step by step hackerrank solution

Hackerrank Solution - Array Reversal:

Welcome back, Guys!!
In this post, we will solve the Array Reversal  Hackerrank problem.
It is a medium level problem using the concept of Array and loops...


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 :


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).

#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;
}
Please read the code and try to anaylise it .
Feel free to share your thoughts and doubts in the comment section below.
See you next time.

Post a Comment

1 Comments