
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var nextGreaterElement = function(nums1, nums2) {
let ptr = 0;
let stack = [];
for(let i = 0; i < nums1.length; i++) {
for(let j = 0; j < nums2.length; j++) {
if(nums1[i] === nums2[j]) {
ptr = j;
while(ptr < nums2.length) {
if(nums2[ptr] > nums2[j]) {
stack.push(nums2[ptr]);
break;
}
ptr++;
if(ptr === nums2.length) {
stack.push(-1);
}
}
}
}
}
return stack;
};
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var nextGreaterElement = function(nums1, nums2) {
return nums1.map(n => {
let ptr = nums2.indexOf(n);
// find the next greater element's index
while (nums2[++ptr] < n);
// -1 if not found
if (ptr >= nums2.length) {
ptr = -1;
} else {
ptr = nums2[ptr];
}
return ptr;
});
};