Today's challenge is so solve problem that you need to calculate
maximum absolute sum of given a array every two.
day14.1
day14.2
Here is my solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| package com.luopandeng.hackerrank;
import java.util.Collections; import java.util.HashSet; import java.util.Scanner;
class Difference { private int[] elements; public int maximumDifference;
public Difference(int[] a) { this.elements = a; }
public void computeDifference() { HashSet<Integer> integers = new HashSet<>(); for (int i = 0; i < elements.length; i++) { for (int j = i; j < elements.length; j++) { integers.add(Math.abs(elements[i] - elements[j])); } } maximumDifference = Collections.max(integers);
}
}
public class Day14Scope {
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); }
}
|
Solution From Others:
1 2 3 4 5 6 7 8 9
| public Difference(int[] elements){ this.elements = elements; }
public void computeDifference(){ Arrays.sort(elements); this.maximumDifference = Math.abs(elements[elements.length - 1] - elements[0]); }
|