关于下一个更大元素的问题,不知道代码哪里有逻辑错误,然后又应该如何改正呢:




```java
public static int[] nextGreaterElements(int[] nums) {
//创建arr数组存储下一个更大的值
int[] arr=new int[nums.length];
//思路:先创建一个栈,用来将数组中的每一个数依次压入,每次压入一个,直到找到比它大的下一个数,再压入数组后面一位
LinkedList<Integer> stack=new LinkedList<>();
stack.push(nums[0]);
int count=1;//用来预判这个数组里面是否有比栈顶大的元素
int j=0;//判断新数组arr是否存满
for (int i = 1 ; i < nums.length; i++) {
if(count==nums.length){//代表数组中没有比栈顶大的元素
count=1;//重置count,方便下一次统计
arr[j++]=-1;//将-1存入
stack.push(nums[j]);//开始压入下一个元素
i=j;//让i回到之前被压入元素的下一个位置
}
if(nums[i]>stack.peek()){//大于的话,放入新数组中
arr[j++]=nums[i];
stack.push(nums[j]);//压入下一个新的元素
i=j;//让i回到之前被压入元素的下一个位置
}
else
count++;
if(arr.length==j+1)//表示已经装满
break;
}
return arr;
}
```