CK 025 | Week2 - Day5
2803 ワード
質問する
パラメータheightは数値からなる配列です.グラフィックで表すと、y軸の値であり、高さの値があります.
[1,8,6,2,5,4,8,3,7]を下図に示します.
そのグラフに水があるとき、水を入れることができる最大面積の値を返してください.
せいげんじょうけん
配列の長さは2より大きい.
私が書いたコード def get_max_area(height):
left = 0
right = len(height)-1
area = 0
while left < right :
area = max(area, min(height[left], height[right])*(right-left))
if height[right] > height[left] :
left += 1
else :
right -=1
return area
私たちに必要なのは水を収容できる最大幅です.
両端から高さを比較します.高2低は高、底辺は오른쪽 인덱스 번호
-왼쪽 인덱스 번호
上の写真を例にとると、
高さは左側より高いが、右側は左側より低い.右の高さを超えるまで水を入れられないからです.
左右中최솟값
水を収容できる高さを指定します.
右と左が交差しないまで最大幅を求めます.
このとき、右側の高さが左側の高さより大きい場合は左側のインデックス番号を増やし、左側が大きい場合は右側のインデックス番号を減らします.
Reference
この問題について(CK 025 | Week2 - Day5), 我々は、より多くの情報をここで見つけました
https://velog.io/@thisisemptyyy/CK-025-Wee2-Day5
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def get_max_area(height):
left = 0
right = len(height)-1
area = 0
while left < right :
area = max(area, min(height[left], height[right])*(right-left))
if height[right] > height[left] :
left += 1
else :
right -=1
return area
私たちに必要なのは水を収容できる最大幅です.両端から高さを比較します.高2低は高、底辺は
오른쪽 인덱스 번호
-왼쪽 인덱스 번호
上の写真を例にとると、高さは左側より高いが、右側は左側より低い.右の高さを超えるまで水を入れられないからです.
左右中
최솟값
水を収容できる高さを指定します.右と左が交差しないまで最大幅を求めます.
このとき、右側の高さが左側の高さより大きい場合は左側のインデックス番号を増やし、左側が大きい場合は右側のインデックス番号を減らします.
Reference
この問題について(CK 025 | Week2 - Day5), 我々は、より多くの情報をここで見つけました https://velog.io/@thisisemptyyy/CK-025-Wee2-Day5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol