我已经把这段代码写成了问题496下一个更大的元素I这里我必须返回一个带括号的数组,比如输出必须是[-1,3,-1],我不能打印它,只能返回,怎么做?
Leetcode https://leetcode.com/problems/next-greater-element-i/description/?envType=study-plan&id=programming-skills-i中的问题链接
public int[] nextGreaterElement(int[] nums1, int[] nums2) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0;i<nums1.length;i++){
for (int j = 0;j<nums2.length;j++){
if (nums1[i] == nums2[j]){
try{
if(nums1[i] < nums2[j+1]){
list.add(nums2[j+1]);
}else{
list.add(-1);
}
}catch (ArrayIndexOutOfBoundsException e){
list.add(-1);
}
}
}
}
int[] array = list.stream().mapToInt(i->i).toArray();
for (int i = 0; i<array.length;i++){
System.out.println(array[i]);
}
return new int[]{}array; // this is error (should return [-1,3,-1])
}
1条答案
按热度按时间6tqwzwtp1#
行
return new int[]{}array;
不是一个语句。您试图返回一个new int[]
,它本身不会导致错误,但是在new int[]{}
之后添加array
绝对没有任何作用,并且会导致编译器错误。只需返回您在它上面创建的数组。我测试了你的回答:
输出为
They are the same
。