leet-code/src/main/java/leetcode/editor/cn/NextGreaterElementI162416858.txt

34 lines
1.1 KiB
Plaintext
Raw Normal View History

2021-05-10 15:19:03 +08:00
class Solution {
public int[] nextGreaterElement(int[] nums1, int[] nums2) {
int size = nums1.length;
int[] result = new int[size];
Stack<Integer> stack = new Stack<>();
for (int i = size - 1; i >= 0; i--) {
result[i] = -2;
stack.push(nums1[i]);
}
int length = nums2.length;
int index = 0;
while (!stack.isEmpty()) {
int i;
for (i = 0; i < length; i++) {
if (result[index] == -2 && nums2[i] == stack.peek()) {
result[index] = -1;
} else if (result[index] == -1 && nums2[i] > stack.peek()) {
result[index] = nums2[i];
stack.pop();
break;
}
}
if (i == length && stack.peek() != result[index]) {
stack.pop();
}
index++;
}
return result;
}
}
//runtime:40 ms
//memory:38.7 MB