代码随想录算法训练营19期第59天

 503.下一个更大元素II 

代码随想录  

初步思路:拼接两个一摸一样的数组,再使用单调栈的方法

总结:更高效的方法是在遍历的过程中模拟走了两边数组

 

       dp = [-1] * len(nums)

        stack = []

        for i in range(len(nums)*2):

            while(len(stack) != 0 and nums[i%len(nums)] > nums[stack[-1]]):

                    dp[stack[-1]] = nums[i%len(nums)]

                    stack.pop()

            stack.append(i%len(nums))

        return dp

用时:30分钟

 42. 接雨水  

代码随想录  

初步思路:暴力解法

总结:稍微高效一点的方法是使用双指针

        leftheight, rightheight = [0]*len(height), [0]*len(height)

        leftheight[0]=height[0]

        for i in range(1,len(height)):

            leftheight[i]=max(leftheight[i-1],height[i])

        rightheight[-1]=height[-1]

        for i in range(len(height)-2,-1,-1):

            rightheight[i]=max(rightheight[i+1],height[i])

        result = 0

        for i in range(0,len(height)):

            summ = min(leftheight[i],rightheight[i])-height[i]

            result += summ

        return result

单调栈的解法一时还掌握不了,留着以后再学习。

用时:60分钟文章来源地址https://uudwc.com/A/JwkE5

原文地址:https://blog.csdn.net/u013003382/article/details/133156990

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月25日 12:49
周界警戒AI算法+视频智能分析在安全生产场景中的应用
下一篇 2023年09月25日 12:49