package com.srie.test;
public class Test02 {
public int sol(int[] nums) {
if (nums == null || nums.length == 0 || nums.length == 1) {
return 0;
}
int n = nums.length;
// store the right max in an array;
int rightmax[] = new int[n];
rightmax[n - 1] = nums[n - 1]; // just save the last element;
int max = nums[n - 1];
for (int i = n - 2; i >= 0; --i) {
max = Math.max(nums[i], max);
rightmax[i] = Math.max(rightmax[i + 1], max); // store the max element;
}
// System.out.println(Arrays.toString(rightmax));
// left max element
int leftmax = nums[0];
int res = Math.abs(leftmax - rightmax[1]);
for (int i = 1; i < n - 1; i++) {
leftmax = nums[i];
res = Math.max(res, Math.abs(leftmax - rightmax[i + 1]));
}
return res;
}
public static void main(String[] args) {
int[] a = { 1, 2, 4, 8 };
Test02 t02 = new Test02();
int i = t02.sol(a);
System.out.println(i);
int[] b = { 1, 3, -3 };
System.out.println(t02.sol(b));
// maxmaxdifference
// bugfixingCoins
}
}