| 123456789101112131415161718192021 | 
							- func nextGreaterElement(findNums []int, nums []int) []int {
 
- 	stack := make([]int, 0) // Keep a decease stack
 
- 	next := make(map[int]int)
 
- 	for _, i := range nums {
 
- 		for l := len(stack); l != 0 && stack[l-1] < i; l = len(stack) {
 
- 			top := stack[l-1]
 
- 			stack = stack[:l-1]
 
- 			next[top] = i
 
- 		}
 
- 		stack = append(stack, i)
 
- 	}
 
- 	res := make([]int, len(findNums))
 
- 	for i := range res {
 
- 		if val, ok := next[findNums[i]]; ok {
 
- 			res[i] = val
 
- 		} else {
 
- 			res[i] = -1
 
- 		}
 
- 	}
 
- 	return res
 
- }
 
 
  |