Python双指针题型相向灌水类
相向双指针有这么几大类题型:2sum,3sum,4sum(见我之前的的总结)分区类(也就是第k大系列,以后会有专题)灌水类(本篇文章的内容)
相向双指针的核心思想是利用问题和数组的特殊性质,减少搜索的空间,时间复杂度可以从O()减少到O()。比如在2sum系列里,由于有序数列的性质,当2sum大于目标值,右指针不可能和左指针右边的数配对了,所以右指针减一,减少搜索范围。
现在我们讨论两道灌水题:ContainerWithMostWaterTrappingRainWater
其解法基于著名的短板原理:一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而是取决于桶壁上最短的那块。ContainerWithMostWater(题号11)
最开始我们把双指针指向开头和结尾。因为最低木板决定水位,所以双指针中高位指针向里的所有位置和低位指针形成的水量都小于当前双指针。因此我们未来可以不用理会当前低位指针,下一步将其向里推进。classSolution:defmaxArea(self,height:List〔int〕)int:initialthemaxareares0constructleftandrightpointersinthe0andn1nlen(height)ifn2:return0left,right0,n1whileleftright:recordthewatercontainedbetweenleftandrightpointerresmax(res,min(height〔left〕,height〔right〕)(rightleft))ifleftright,moveleftpointertorightifrightright,moverightpointertoleftifheight〔left〕height〔right〕:left1else:right1untilleftrightreturnresTrappingRainWater(题号42)
这道题有多种解法,最优解法是相向双指针。基于短板原理,首先我们要明确基本公式:
和上面类似,我们总是向里移动低位指针进行遍历。classSolution:deftrap(self,height:List〔int〕)int:Nlen(height)leftmax,rightmax0,0left,right0,N1res0whileleftright:ifheight〔left〕height〔right〕:ifheight〔left〕leftmax:nowatercanbecontainedatleftpointerleftmaxheight〔left〕else:calculatethewaterattheleftpointerresleftmaxheight〔left〕left1else:ifheight〔right〕rightmax:nowatercanbecontainedatleftpointerrightmaxheight〔right〕else:calculatethewaterattherightpointerresrightmaxheight〔right〕right1returnres
Timecomplexity:O(n);Spacecomplexity:O(1)
特斯拉对产业布局的影响?2018年在特斯拉最困难的时候我们国家抛出橄榄枝,完整的制造业产业链和高效的生产能力让特斯拉最终落户上海,而且是以史无前例的独资形式和各种优惠政策。到目前为止特斯拉的市值已经超……
我的海南之旅作文那是前年初冬的一个清晨,我们一家随医院团体踏上了前往武汉的旅游车。几小时后,我们到了武汉,坐上飞机前往海南。上了飞机,我们都是满头大汗,立刻减了不少衣服。飞机在厚厚的云层……
我的天堂优秀作文外婆家住在云阳的南边,门前有一条美丽的石笋河。那里是我魂牵梦萦的地方。国庆长假,我又来到了她的身旁。汽车钻出歧阳隧道,在连绵的群山之间奔驰,远远地望见她明亮的身影。那是仙……
曾经陪伴过我的人作文300字看了这个题目,你也许会问,那个曾经陪伴过你的人,会不会是你的朋友?不,那个人就是曾经教过我舞蹈的夏老师。夏老师是个四川人,至于她长得什么样子,我已经记不清了,但是,她那双会说话……
8128G卖5488,鸿蒙系统200倍变焦,华为P50Pro如果一款手机想要带来更加优质的用机体验,那它就必须要做到面面俱到,无论是外观、核心配置,还是拍摄能力以及续航都要表现不错。然而真正能够让网友们体验到优质的地方还不止是这些,网络……
小学生小白兔运南瓜作文三篇【篇一】一天,小白兔去菜园里摘南瓜,它摘了一个又大又重的南瓜准备运回家。它使劲地推,可是推也推不动。它用力去搬,可是搬也搬不动。它吃力地拉,可是南瓜却纹丝不动。小白……
我的老师像片云四年级作文天空中的云朵千姿百态,有时像一片薄雾,稀稀的;有时似一块块棉花糖,又白又多,很好吃的样子;还有时如许多顽皮的小孩子,一会儿飘到这,一会儿飘到那我的学校如同一片一望无际的蓝天,里……
关于故乡的作文故乡的天井故乡在南疆建水小城,一个小巧秀丽的地方。那里虽不出名,却也是个文化圣地:米文化、祭孔、花灯小调还有天井。建水的民居如同这个城镇一般小巧,多是四合院式的小方块,也称之为一颗……
森林舞会小学生童话作文森林之王狮子对森林里的所有动物说:这周周末将举行舞林大会,所有动物都可以参加。周末到了,比赛开始了。参赛的有孔雀、猴子,还有百灵鸟、麻雀一号选手孔雀登场了。它高昂着头,舒……
不寻常的春天里作文范文三篇不寻常的春天里作文500字燕语呢喃,百花竞放,柔柔的暖风调皮地亲吻着我们的脸颊;空气中和煦的青草味,身上薄薄的金黄,还有人们那轻便的新装一切,都是春之神撒下的种子开出的生……
家风家训伴我成长四年级作文家风就像一谭清澈的湖水,能洗净心灵所有的繁杂;家风就像一片湛蓝的天空,能让心灵变的广阔,纯洁;家风就像一缕阳光,能够温暖人心;家风就像一缕青烟,能够看透人生所有的是是非非。我的……
我的这个暑假600字作文素材我的暑假生活说三天三夜也说不完,只能用一个成语形容mdash;mdash;五彩缤纷。下面是品学网小编为您整理的关于我的这个暑假600字作文素材的内容,希望对您有所帮助!我的这个……
银行实习日记分享在银行顶岗实习,顶岗实习过程中我们一定可以收获很多经验。大家要学会总结这些经验,写好顶岗实习日记,这样才能保持进步哦。以下是小编为大家整理好的银行顶岗实习日记,欢迎大家阅读参考……
涠洲岛历险记四年级作文涠洲岛位于广西北海市海域中,是中国地质年龄最年轻的火山岛,也是广西最大的海岛,岛上有海蚀、海积及溶岩等无限美丽的景观。这些就是爸爸在我们上岛之前描述的涠洲岛美景。涠洲岛的确很美……
我的中秋节小学五年级作文无论在学习、工作或是生活中,大家都接触过作文吧,作文是一种言语活动,具有高度的综合性和创造性。那么你知道一篇好的作文该怎么写吗?以下是小编为大家整理的我的中秋节小学五年级作文,……
我学会了电脑许多人都觉得学电脑是一件很难的事情。我刚开始学电脑的时候也顾虑重重,可是见到别人的手在电脑键盘上灵活地敲击,又觉得十分神秘,总想试试。一天爸爸对我说:ldquo;小丹,爸……
Elasticsearch基础查询表达式查询表达式查询表达式(QueryDSL)是一种非常灵活又富有表现力的查询语言。Elasticsearch使用它可以以简单的JSON接口来展现Lucene功能的绝大部分。……
Kotlin条件控制Kotlin条件控制IF表达式一个if语句包含一个布尔表达式和一条或多条语句。传统用法varmaxaif(ab)maxb使用elsevarmax:Intif(ab){ma……
璇的独白2014年11月30日一眨眼,12年啊,不知道身在远方的朋友你们可好啊?我们很快就要见面了,呵呵,好玩的游戏也即将开始了呢在这12年中,我不知受了多少委屈,但是我也……
揭秘物体的真实颜色科普之前的文章已经详细分析过物体颜色的起源,在物体的表面会产漫反射和镜面反射两种,其中漫反射的光进入到眼睛表现为物体的本身颜色,镜面反射的光产生的是光源的反射光斑,会大大降低物……
三副对联金榜题名关于金榜题名的对联有那下?各位金榜题名的。朋友们,小编已经整理了相关的对联,请看:【横批:小试牛刀】上联:两袖书香录名校下联:一鸣得路为卿相【横批:志存……
主题作文之马马的作文(一)二表姐的爷爷奶奶住在一座大山脚下,因为山陡路峭,交通不便,所以他们家便养了一匹马来作主要的运输工具。它的主要任务就是把山外的东西驮进来或是把山里的东西运出去……
工业显示器和商用显示器的区别是什么?大家对商用显示器肯定很熟悉,但是对工业显示器就略显陌生了。其实工业显示器和商用显示器的主要区分在于稳定性跟抗干扰性、图画清晰度、颜色复原度、设备端口、IO接口、散热架构等方面,……
西瓜皮看图作文500字夏天,真是酷暑难熬啊!这一天,贴心的。妈妈为小明买回了一个大西瓜。小明在屋里津津有味地吃西瓜,他挥动着手里的大刀将西瓜劈成许多份,然后开心地吃了起来。西瓜黑的籽,红……