golang 496下一个更大元素我

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 496下一个更大元素我相关的知识,希望对你有一定的参考价值。

func nextGreaterElement(findNums []int, nums []int) []int {
    if len(nums) == 0 {
		return []int{}
	}
	result := make([]int, 0)
	m := make(map[int]int)
	st := &Stack{}
	st.Push(nums[0])
	for _, n := range nums[1:] {
		for st.Len() > 0 && n > st.Peek().(int) {
			pop, _ := st.Pop()
			m[pop.(int)] = n
		}
		st.Push(n)
	}
	for _, n := range findNums {
		if v, ok := m[n]; ok {
			result = append(result, v)
		} else {
			result = append(result, -1)
		}
	}
	return result
}
type Stack struct {
	data []interface{}
}
func (this *Stack) Len()int {
	return len(this.data)
}

func (this *Stack) Push(i interface{}) {
	this.data = append([]interface{}{i}, this.data...)
}
func (this *Stack) Peek() interface{} {
	return this.data[0]
}
func (this *Stack) Pop() (interface{}, bool) {
	if len(this.data) == 0 {
		return nil, false
	}
	i := this.Peek()
	this.data = this.data[1:]
	return i, true
}

golang自带hex包的使用说明

参考技术A hex包主要是将字节流转换成16进制的操作.

主要操作函数

以上是关于golang 496下一个更大元素我的主要内容,如果未能解决你的问题,请参考以下文章

496. 下一个更大元素 I 的 单调栈解法

496. 下一个更大元素 I

[JavaScript 刷题] 栈 - 下一个更大元素 I, leetcode 496

[JavaScript 刷题] 栈 - 下一个更大元素 I, leetcode 496

[JavaScript 刷题] 栈 - 下一个更大元素 I, leetcode 496

496. 下一个更大元素 I『简单』