Hello coders, today we are going to solve Day 14: Scope HackerRank Solution in C++, Java and Python.
Objective
Today we’re discussing scope.
The absolute difference between two integers, a and b, is written as |a – b|. The maximum absolute difference between two integers in a set of positive integers, elements, is the largest absolute difference between any two integers in elements.
The Difference class is started for you in the editor. It has a private integer array (elements) for storing N non-negative integers, and a public integer (maximumDifference) for storing the maximum absolute difference.
Task
Complete the Difference class by writing the following:
- A class constructor that takes an array of integers as a parameter and saves it to the _elements instance variable.
- A computeDifference method that finds the maximum absolute difference between any 2 numbers in _elements and stores it in the maximumDifference instance variable.
Input Format
You are not responsible for reading any input from stdin. The locked Solution class in the editor reads in 2 lines of input. The first line contains N, the size of the elements array. The second line has N space-separated integers that describe the _elements array.
Constraints
- 1 <= N <= 10
- 1 <= _elements[i] <= 100, where 0 <= i <= N – 1
Output Format
You are not responsible for printing any output; the Solution class will print the value of the maximumDifference instance variable.
Sample Input
STDIN Function
----- --------
3 __elements[] size N = 3
1 2 5 __elements = [1, 2, 5]
Sample Output
4
Explanation
The scope of the _elements array and maximumDifference integer is the entire class instance. The class constructor saves the argument passed to the constructor as the _elements instance variable (where the computeDifference method can access it).
To find the maximum difference, computeDifference checks each element in the array and finds the maximum difference between any 2 elements: |1 – 2| = 1
|1 – 5| = 4
|2 – 5| = 3
The maximum of these differences is 4, so it saves the value 4 as the maximumDifference instance variable. The locked stub code in the editor then prints the value stored as maximumDifference, which is 4.
Solution – Day 14: Scope
C++
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; class Difference { private: vector<int> elements; public: int maximumDifference; // Add your code here Difference(vector<int> a){ elements = a; maximumDifference = 0; } void computeDifference(){ int n = elements.size()-1; for(int i = 0; i < n; i++){ for(int j = i; j < n; j++){ if(maximumDifference < abs(elements[i]-elements[j+1])){ maximumDifference = abs(elements[i]-elements[j+1]); } } } } }; // End of Difference class int main() { int N; cin >> N; vector<int> a; for (int i = 0; i < N; i++) { int e; cin >> e; a.push_back(e); } Difference d(a); d.computeDifference(); cout << d.maximumDifference; return 0; }
Java
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; class Difference { private int[] elements; public int maximumDifference; public Difference(int []elements) { this.elements=elements; } void computeDifference(){ int n=elements.length; Arrays.sort(elements); maximumDifference=Math.abs(elements[n-1]-elements[0]); } } // End of Difference class public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); } sc.close(); Difference difference = new Difference(a); difference.computeDifference(); System.out.print(difference.maximumDifference); } }
Python
class Difference: def __init__(self, a): self.__elements = a def computeDifference(self): maximum = 0 for i in range(len(self.__elements)): for j in range(len(self.__elements)): absolute = abs(self.__elements[i] - self.__elements[j]) if absolute > maximum: maximum = absolute self.maximumDifference = maximum # End of Difference class _ = input() a = [int(e) for e in input().split(' ')] d = Difference(a) d.computeDifference() print(d.maximumDifference)
Disclaimer: The above Problem (Day 14: Scope) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.