摘要:我們需要找出這些線所圍成的容器,能裝最多水的水量。這道題是不能用蠻力法解決的,會(huì)超時(shí)。這個(gè)解法想法是這樣的,我們用兩個(gè)變量,指向數(shù)組的起始元素和末尾元素。首先計(jì)算這兩條線所圍成的容器面積,然后移動(dòng)指向較短的線段的指針。
題目詳情
Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.想法輸入一個(gè)數(shù)組,數(shù)組的每一個(gè)元素都代表了一條垂直的線,其中每一個(gè)元素的位置代表橫坐標(biāo),元素的值代表縱坐標(biāo)。我們需要找出這些線所圍成的“容器”,能裝最多水的水量。
因?yàn)檫@是一個(gè)裝水的容器,所以并不能直接的算圍成的面積,裝水的面積取決于兩條線中較短的那條的長(zhǎng)度和兩條線之間橫坐標(biāo)的差值。
這道題是不能用蠻力法解決的,會(huì)超時(shí)T^T。
這個(gè)解法想法是這樣的,我們用兩個(gè)變量start,end指向數(shù)組的起始元素和末尾元素。首先計(jì)算這兩條線所圍成的容器面積,然后移動(dòng)指向較短的線段的指針。直到start = end。
解法public int maxArea(int[] height) { int maxArea = 0; int start = 0; int end = height.length-1; while(start < end){ maxArea = Math.max(maxArea, Math.min(height[start], height[end])*(end-start)); if(height[start] < height[end]) start ++; else end--; } return maxArea; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70945.html
摘要:一題目盛最多水的容器給定個(gè)非負(fù)整數(shù),,,,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn)。在坐標(biāo)內(nèi)畫條垂直線,垂直線的兩個(gè)端點(diǎn)分別為和。找出其中的兩條線,使得它們與軸共同構(gòu)成的容器可以容納最多的水。在此情況下,容器能夠容納水表示為藍(lán)色部分的最大值為。 一、題目 盛最多水的容器: 給定 n 個(gè)非負(fù)整數(shù) a1,a2,...,an,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn)?(i,?ai) 。在坐標(biāo)內(nèi)畫 n 條垂直線,垂直線 i?...
摘要:最新更新請(qǐng)?jiān)L問(wèn)棧法復(fù)雜度時(shí)間空間思路最大盛水量取決于兩邊中較短的那條邊,而且如果將較短的邊換為更短邊的話,盛水量只會(huì)變少。所以我們可以用兩個(gè)頭尾指針,計(jì)算出當(dāng)前最大的盛水量后,將較短的邊向中間移,因?yàn)槲覀兿肟纯茨懿荒馨演^短的邊換長(zhǎng)一點(diǎn)。 Container With Most Water 最新更新請(qǐng)?jiān)L問(wèn):https://yanjia.me/zh/2018/11/... Given n...
摘要:題目要求給一個(gè)數(shù)組,其中數(shù)組在下標(biāo)處的值為,坐標(biāo)和坐標(biāo)構(gòu)成一條垂直于坐標(biāo)軸的直線?,F(xiàn)任取兩條垂線和軸組成四邊形容器。當(dāng)左右指針相遇時(shí),指針假設(shè)該算法并沒(méi)有遍歷到容量最大的情況我們令容量最大時(shí)的指針為和。 題目要求:給一個(gè)數(shù)組,其中數(shù)組在下標(biāo)i處的值為A[i],坐標(biāo)(i,A[i])和坐標(biāo)(i,0)構(gòu)成一條垂直于坐標(biāo)軸x的直線?,F(xiàn)任取兩條垂線和x軸組成四邊形容器。問(wèn)其中盛水量最大為多少? ...
摘要:一題目描述空格分隔,逐個(gè)反轉(zhuǎn)二題目描述三題目描述當(dāng)然也可以用的做,不過(guò)用雙指針更快。 LeetCode: 557. Reverse Words in a String III 一、LeetCode: 557. Reverse Words in a String III 題目描述 Given a string, you need to reverse the order of chara...
摘要:題目解答這里如果左邊的數(shù)比右邊的數(shù)小,那么這就是取這個(gè)位置時(shí)的面積最大值。因?yàn)椴还茉趺聪蜃笠苿?dòng),最大高度也還是的值,而寬只會(huì)減小。所以我們只有向右移動(dòng)才有可能遇到更大的,從而有可能產(chǎn)生更大的面積。 題目:Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (...
閱讀 2527·2021-09-26 10:18
閱讀 3401·2021-09-22 10:02
閱讀 3213·2019-08-30 15:44
閱讀 3340·2019-08-30 15:44
閱讀 1844·2019-08-29 15:25
閱讀 2590·2019-08-26 14:04
閱讀 2054·2019-08-26 12:15
閱讀 2449·2019-08-26 11:43