- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Maximum absolute difference of value and index sums in C
We are given with an array of integers. The task is to calculate the maximum absolute difference of value and index sums. That is for each pair of indexes (i,j) in an array, we have to calculate | Arr[i] - A[j] | + |i-j| and find the maximum such sum possible. Here |A| means absolute value of A. If array has 4 elements then indexes are 0,1,2,3 and unique pairs will be ( (0,0), (1,1), (2,2), (3,3), (0,1), (0,2), (0,3), (1,2), (1,3), (2,3) ).
Input − Arr[] = { 1,2,4,5 }
Output − Maximum absolute difference of value and index sums − 7
Explanation − Index pairs and | A[i]-A[j] | + | i-j | are as follows
1. (0,0), (1,1), (2,2), (3,3)--------- |i-j| for each is 0. 2. (0,1)---------- |1-2| + |0-1|= 1+1 = 2 3. (0,2)---------- |1-4| + |0-2|= 3+2 = 5 4. (0,3)---------- |1-5| + |0-3|= 4+3 = 7 5. (1,2)---------- |2-4| + |1-2|= 2+1 = 3 6. (1,3)---------- |2-5| + |1-3|= 3+2 = 5 7. (2,3)---------- |4-5| + |2-3|= 1+1 = 2 Maximum value of such a sum is 7.
Input − Arr[] = { 10,20,21 }
Output − Maximum absolute difference of value and index sums − 13
Explanation − Index pairs and | A[i]-A[j] | + | i-j | are as follows
1. (0,0), (1,1), (2,2)--------- |i-j| for each is 0. 2. (0,1)---------- |10-20| + |0-1|= 10+1 = 11 3. (0,2)---------- |10-21| + |0-2|= 11+2 = 13 4. (1,2)---------- |20-21| + |1-2|= 1+1 = 2 Maximum value of such a sum is 13.
Approach used in the below program is as follows
We take an integer array having numbers as Arr[]
The function maxabsDiff( int arr[],int n) is used to calculate the maximum absolute difference of value and index sums..
We initialize the variable result with -1.
Inside the for loop traverse the array of integers from the beginning.
In nested for loop traverse the remaining elements and calculate the absolute sum of element value and indexes i,j (abs(arr[i] - arr[j]) + abs(i - j)) and store in a variable say absDiff.
If this new calculated sum is more than the previous one then store it in ‘result’.
Return result after traversing the whole array.
Example
#include <stdio.h> #include <math.h> // Function to return maximum absolute difference int maxabsDiff(int arr[], int n){ int result = 0; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { int absDiff= abs(arr[i] - arr[j]) + abs(i - j); if (absDiff > result) result = absDiff; } } return result; } int main(){ int Arr[] = {1,2,4,1,3,4,2,5,6,5}; printf("Maximum absolute difference of value and index sums: %d", maxabsDiff(Arr,10)); return 0; }
Output
If we run the above code it will generate the following output −
Maximum absolute difference of value and index sums: 13
- Related Articles
- Maximum of Absolute Value Expression in C++
- Find the node whose absolute difference with X gives maximum value in C++
- Maximum sum of absolute difference of any permutation in C++
- Count maximum elements of an array whose absolute difference does not exceed K in C++
- Program to find maximum adjacent absolute value sum after single reversal in C++
- Maximum absolute difference of the length of strings from two arrays in JavaScript
- Maximum and minimum sums from two numbers with digit replacements in C++
- Find difference between sums of two diagonals in C++.
- C Program for Difference between sums of odd and even digits?
- Refractive index of diamond with respect to glass is 1.6 and absolute refractive index of glass is 1.5. Find out the absolute refractive index of diamond.
- Python - Return the maximum value of the Pandas Index
- Array index to balance sums in JavaScript
- Absolute Difference of even and odd indexed elements in an Array (C++)?
- Difference between sums of odd and even digits.
- C Program for the Difference between sums of odd and even digits?
