dedecms网站信息统计,青海玉树网站建设,wordpress变色龙主题,项目外包#x1f4dd;前言说明#xff1a; ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录#xff0c;主要跟随B站博主灵茶山的视频进行学习#xff0c;专栏中的每一篇文章对应B站博主灵茶山的一个视频 ●题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。…前言说明 ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录主要跟随B站博主灵茶山的视频进行学习专栏中的每一篇文章对应B站博主灵茶山的一个视频 ●题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。 ●文章中的理解仅为个人理解。 ●文章中的截图来源于B站博主灵茶山如有侵权请告知。 个人简介努力学习ing 本专栏python刷题专栏 其他专栏C语言入门基础以及python入门基础 CSDN主页 愚润求学 视频 一题目汇总二视频题目111.成最多水的容器242.接雨水 一题目汇总
●视频题目题号 1142
二视频题目
111.成最多水的容器
●题目
●题解 找最大面积判断什么时候会有更大面积。 如果选定了一组边如图中的红色则面积由短边决定且在这组边内的任意一条边与短边的组合不糊再大于原来的面积因为当找到更长边时面积还是由短边决定但是长变短了。如果找到更短边时长x轴和宽y轴都变短了 所以改变短边的指针的指向别的边才可能会产生更大的面积
class Solution:def maxArea(self, height: List[int]) - int:max 0i, j 0, len(height) - 1while i j:s (j - i ) * min(height[i], height[j])if s max:max sif height[i] height[j]:i 1else:j - 1return max242.接雨水
题目 题解 对每个长度为一的坑进行单独分析 如果没有柱子则一个坑能接的水取决于这个坑的前面柱子中的最大柱子和后面柱子中的最大柱子由短的决定能接的水的数量即某一个长为一的坑能接水的高度为max前缀最大值后缀最大值 如果算上柱子则减去柱子的柱高就是长度为一的坑的接水量 方法一 创建两个额外的数组用来保存每个坑的前缀和后缀的最大值每个坑的前缀最大值为max上个坑的前缀最大值该坑高度
class Solution:def trap(self, height: List[int]) - int:ans 0n len(height)pre_max [0] * nsuf_max [0] * n# 初始化前后缀最大值的数组pre_max[0] height[0]for i in range(1, n):pre_max[i] max(pre_max[i-1], height[i])suf_max[-1] height[-1]for i in range(n-2, -1, -1):suf_max[i] max(suf_max[i1], height[i])for h, pre, suf in zip(height, pre_max, suf_max):ans min(pre, suf) - hreturn ans方法二双向指针明确了移动哪一边 分析因为每个坑能装水的高度是由min(前缀最大值后缀最大值) - h决定的所以我们可以对短边进行计算计算完后移动短边到下一个坑 代码
class Solution:def trap(self, height: List[int]) - int:ans 0n len(height)left, right 0, n-1pre_max height[left]suf_max height[right]while left right:pre_max max(pre_max, height[left])suf_max max(suf_max, height[right])if pre_max suf_max:ans pre_max - height[left]left 1else:ans suf_max - height[right]right - 1return ans我的分享也就到此结束啦 要是我的分享也能对你的学习起到帮助那简直是太酷啦 若有不足还请大家多多指正我们一起学习交流 公主王子点赞→收藏⭐→关注 感谢大家的观看和支持祝大家都能得偿所愿天天开心