Absolute Difference of even and odd indexed elements in an Array
Last Updated :
08 Sep, 2022
Given an array of integers arr, the task is to find the running absolute difference of elements at even and odd index positions separately.
Note: 0-based indexing is considered for the array. That is the index of the first element in the array is zero.
Examples:
Input: arr[] = {1, 2, 3, 4, 5, 6}
Output: Even Index absolute difference : 3
Odd Index absolute difference : 4
Explanation :
Here, even indexed elements are 1, 3 and 5
So the even absolute difference will be (|1 – 3| = 2) => (|2 – 5| = 3)
Similarly odd indexed elements are 2, 4 and 6
And the odd absolute difference will be (|2 – 4| = 2) => (|2 – 6| = 4)
Input: arr[] = {10, 20, 30, 40, 50, 60, 70}
Output: Even Index absolute difference : 40
Odd Index absolute difference : 40
Approach: Traverse the array and keep two variables even and odd to store the absolute difference of elements of even and odd indexes respectively. While traversing check if the current index is even, i.e. (i%2) == 0. Print the results in the end.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
void EvenOddAbsoluteDifference( int arr[], int n)
{
int even = 0;
int odd = 0;
for ( int i = 0; i < n; i++) {
if (i % 2 == 0)
even = abs (even - arr[i]);
else
odd = abs (odd - arr[i]);
}
cout << "Even Index absolute difference : " << even;
cout << endl;
cout << "Odd Index absolute difference : " << odd;
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6 };
int n = sizeof (arr) / sizeof (arr[0]);
EvenOddAbsoluteDifference(arr, n);
return 0;
}
|
C
#include <stdio.h>
int abs ( int a)
{
int abs = a;
if ( abs < 0)
abs = abs * (-1);
return abs ;
}
void EvenOddAbsoluteDifference( int arr[], int n)
{
int even = 0;
int odd = 0;
for ( int i = 0; i < n; i++) {
if (i % 2 == 0)
even = abs (even - arr[i]);
else
odd = abs (odd - arr[i]);
}
printf ( "Even Index absolute difference : %d\n" ,even);
printf ( "Odd Index absolute difference : %d\n" ,odd);
}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6 };
int n = sizeof (arr) / sizeof (arr[0]);
EvenOddAbsoluteDifference(arr, n);
return 0;
}
|
Java
public class GFG{
static void EvenOddAbsoluteDifference( int arr[], int n)
{
int even = 0 ;
int odd = 0 ;
for ( int i = 0 ; i < n; i++) {
if (i % 2 == 0 )
even = Math.abs(even - arr[i]);
else
odd = Math.abs(odd - arr[i]);
}
System.out.println( "Even Index absolute difference : " + even);
System.out.println( "Odd Index absolute difference : " + odd);
}
public static void main(String []args){
int arr[] = { 1 , 2 , 3 , 4 , 5 , 6 };
int n = arr.length;
EvenOddAbsoluteDifference(arr, n);
}
}
|
Python3
def EvenOddAbsoluteDifference(arr, n):
even = 0
odd = 0
for i in range ( 0 , n, 1 ):
if (i % 2 = = 0 ):
even = abs (even - arr[i]);
else :
odd = abs (odd - arr[i]);
print ( "Even Index absolute difference :" , even)
print ( "Odd Index absolute difference :" , odd)
if __name__ = = '__main__' :
arr = [ 1 , 2 , 3 , 4 , 5 , 6 ]
n = len (arr)
EvenOddAbsoluteDifference(arr, n)
|
C#
using System;
class GFG
{
static void EvenOddAbsoluteDifference( int []arr,
int n)
{
int even = 0;
int odd = 0;
for ( int i = 0; i < n; i++)
{
if (i % 2 == 0)
even = Math.Abs(even - arr[i]);
else
odd = Math.Abs(odd - arr[i]);
}
Console.WriteLine( "Even Index absolute " +
"difference : " + even);
Console.WriteLine( "Odd Index absolute " +
"difference : " + odd);
}
static public void Main ()
{
int []arr = { 1, 2, 3, 4, 5, 6 };
int n = arr.Length;
EvenOddAbsoluteDifference(arr, n);
}
}
|
PHP
<?php
function EvenOddAbsoluteDifference( $arr , $n )
{
$even = 0;
$odd = 0;
for ( $i = 0; $i < $n ; $i ++)
{
if ( $i % 2 == 0)
$even = abs ( $even - $arr [ $i ]);
else
$odd = abs ( $odd - $arr [ $i ]);
}
echo "Even Index absolute difference : " ,
$even ;
echo "\n" ;
echo "Odd Index absolute difference : " ,
$odd ;
}
$arr = array ( 1, 2, 3, 4, 5, 6 );
$n = sizeof( $arr );
EvenOddAbsoluteDifference( $arr , $n );
?>
|
Javascript
<script>
function EvenOddAbsoluteDifference(arr, n)
{
let even = 0;
let odd = 0;
for (let i = 0; i < n; i++)
{
if (i % 2 == 0)
even = Math.abs(even - arr[i]);
else
odd = Math.abs(odd - arr[i]);
}
document.write( "Even Index absolute " +
"difference : " + even + "</br>" );
document.write( "Odd Index absolute " +
"difference : " + odd + "</br>" );
}
let arr = [ 1, 2, 3, 4, 5, 6 ];
let n = arr.length;
EvenOddAbsoluteDifference(arr, n);
</script>
|
Output
Even Index absolute difference : 3
Odd Index absolute difference : 4
Complexity Analysis:
- Time complexity: O(n), where n represents the size of the given array.
- Auxiliary Space: O(1), no extra space is required, so it is a constant.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...