Pythonで最大の周囲の三角形
正の長さの配列Aがあるとすると、これらの長さの3つから形成された、面積がゼロ以外の三角形の最大の周囲長を見つける必要があります。ゼロ以外の領域の三角形を形成できない場合は、0を返します。
したがって、入力が[3,6,2,3]の場合、出力は8になります。
これを解決するには、次の手順に従います-
- リストAを並べ替える
- a:=Aから最後の要素を削除
- b:=Aから最後の要素を削除
- c:=Aから最後の要素を削除
- b + c <=aの場合、do
- Aがゼロ以外の場合、
- 0を返す
- a:=b
- b:=c
- c:=Aから最後の要素を削除
- Aがゼロ以外の場合、
- return a + b + c
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def largestPerimeter(self, A): A.sort() a, b, c = A.pop(), A.pop(), A.pop() while b+c<=a: if not A: return 0 a, b, c = b, c, A.pop() return a+b+c ob = Solution() print(ob.largestPerimeter([3,6,2,3]))
入力
[3,6,2,3]
出力
8
-
Pythonで最大の三角形の領域
平面上の点のリストがあるとします。 3つの点で形成できる最大の三角形の領域を見つける必要があります。 したがって、入力が[[0,0]、[0,1]、[1,0]、[0,2]、[2,0]]の場合、出力は2になります。 これを解決するには、次の手順に従います- res:=0 N:=ポイントリストのサイズ 0からN-2の範囲のiの場合、do i +1からN-1の範囲のjの場合、do i + 2からNの範囲のkについては、 (x1、y1):=points [i]、 (x2、y2):=points [j]、 (x3、y3):=ポイント[k] res:=resの最大値、0.5 *
-
Pythonのヒストグラムで最大の長方形
ヒストグラムの高さを表す整数配列が1つあるとします。各バーには単位幅があります。次のように最大面積の長方形を見つける必要があります- これを解決するには、次の手順に従います- スタックを作成し、i:=0、ans:=0を設定します <高さのサイズなら スタックの要素が0であるか、スタックの最上位要素の高さが<=height [i]の場合、 iをスタックに挿入し、iを1増やします それ以外の場合- x:=スタックの最上位要素、スタックから削除します。 height:=heights [x] temp:=height *(i * stac