diff --git a/problems/0496.下一个更大元素I.md b/problems/0496.下一个更大元素I.md index 95aca60b..0c4fdd65 100644 --- a/problems/0496.下一个更大元素I.md +++ b/problems/0496.下一个更大元素I.md @@ -238,4 +238,37 @@ class Solution: return result ``` +Go: +```go +func nextGreaterElement(nums1 []int, nums2 []int) []int { + res := make([]int, len(nums1)) + for i:= range res { + res[i] = -1 + } + mp := map[int]int{} + for i,v := range nums1 { + mp[v] = i + } + // 单调栈 + stack := []int{} + stack = append(stack,0) + + for i:=1; i0 && nums2[i] > nums2[stack[len(stack)-1]] { + + top := stack[len(stack)-1] + + if _, ok := mp[nums2[top]]; ok { // 看map里是否存在这个元素 + index := mp[nums2[top]]; // 根据map找到nums2[top] 在 nums1中的下表 + res[index] = nums2[i] + } + + stack = stack[:len(stack)-1] // 出栈 + } + stack = append(stack, i) + } + return res +} +``` +