package com.shekhargulati.tadm.ch04.excercises;
import com.shekhargulati.IntPair;
import java.util.OptionalInt;
import java.util.stream.IntStream;
public class Problem4_2 {
public static IntPair maximize_unsorted(int[] numbers) {
OptionalInt min = IntStream.of(numbers).min();
OptionalInt max = IntStream.of(numbers).max();
return new IntPair(min.getAsInt(), max.getAsInt());
}
public static IntPair maximize_sorted(int[] numbers) {
return new IntPair(numbers[0], numbers[numbers.length - 1]);
}
public static IntPair minimize_unsorted(int[] numbers) {
int[] sorted = IntStream.of(numbers).sorted().toArray();
return minimize_sorted(sorted);
}
public static IntPair minimize_sorted(int[] sorted) {
int diff = sorted[1] - sorted[0];
IntPair pair = null;
for (int i = 1; i < sorted.length - 1; i++) {
int first = sorted[i];
int second = sorted[i + 1];
if (diff > (second - first)) {
diff = second - first;
pair = new IntPair(first, second);
}
}
return pair;
}
}