package contests;
/**
* Created by sherxon on 2/4/17.
*/
public class NextGreaterElementII {
public static void main(String[] args) {
//nextGreaterElements(new int[]{1,2,3,4,3});
nextGreaterElements(new int[]{1, -2, -2, -1});
}
static int[] nextGreaterElements(int[] nums) {
int[] a = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
int lo = 0;
int hi = i + 1;
int val = Integer.MIN_VALUE;
int val2 = Integer.MIN_VALUE;
int minleft = a.length;
while (hi < nums.length || lo < i) {
if (hi < nums.length && nums[hi] > nums[i]) {
val = nums[hi];
break;
}
if (lo < i && nums[lo] > nums[i] && minleft > lo) {
val2 = nums[lo];
minleft = lo;
}
if (hi > nums.length && val2 != Integer.MIN_VALUE) break;
lo++;
hi++;
}
if (val != Integer.MIN_VALUE) a[i] = val;
else if (val2 != Integer.MIN_VALUE) a[i] = val2;
else a[i] = -1;
}
return a;
}
}