From 28ffe90025db96c2db7cd7aa377736592567be7b Mon Sep 17 00:00:00 2001 From: ThinkingXuan <1454739828@qq.com> Date: Tue, 14 Sep 2021 20:42:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200496.=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=9B=B4=E5=A4=A7=E5=85=83=E7=B4=A0I.md=20Go=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 0496.下一个更大元素I.md Go语言版本 --- problems/0496.下一个更大元素I.md | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) 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 +} +``` +