ほとんどの水を入れて

トピック:

所与のn非負整数A1、A2、...、点(I、AI)各座標の数を表します。垂直座標内の動画n行、私は2つのエンドポイントは、(i、AI)及び(I、0)は垂直線です。x軸の構成は、水を収容できるように一緒に容器を有する2本のラインを見つけます。

注意:あなたは、コンテナを傾けることができない、とnの値は、少なくとも2です。

 

図の縦線[1,8,6,2,5,4,8,3,7]入力配列を表します。この場合、水を保持することができる最大コンテナ49の(青色で示します)。

 

例:

入力:[1,8,6,2,5,4,8,3,7]
出力:49

/ * * 
 * @param {数[]}高さ
 * @return {数} 
 * / 
関数minは(B){
     返す <= bは?A:B; 
} 
VARの maxArea = 関数(高さ){ 
    
    TEMPせ = 0。// 最大容量
    
    のために(LET I = 0; I <height.length; iは++ ){
         ため(LET J = I + 1、J <height.length; J ++ ){
             場合(温度<(JI)* 分(高さ[ i]は、高さ[J])){ 
                TEMP =(JI)* 分(高さ[I]、高さ[J])。
            } 
        } 
    } 
    戻りTEMP。
}。

実装:最大値を選択するループ検知して主に実装二つのポインタ。(暴力)

/ * * 
 * @param {数[]}高さ
 * @return {数} 
 * / 
関数minは(B){
     返す <= bは?A:B; 
} 
VARの maxArea = 関数(高さ){ 
   
    左せ = 0 
    聞かせて右 = height.length-1 ; 
    一時ましょう = 0 ;
    一方(左< 右){ 
       
        場合(温度<(左右)* 分(高さ[左]、高さ[右])){ 
            TEMP =(左右)* 分(高さ[左]、高さ[右] ); 
        } 
        もし(高さ[左] <= 高さ[右]){ ++ ; 
        } {  - 
        } 
        
        
        
    } 
    戻りTEMP。
}。

実現、領域は常に短いピースの前記長さの制限の対象となる2つのセグメント間に形成されます。また、遠い2つのライン・セグメントは、大きな面積を得ました。内側両側から横断するように一度に行うことができます。(ダブルポインタ)

 

 

 

 

出典:https://leetcode-cn.com/problems/container-with-most-water/solution/sheng-zui-duo-shui-de-rong-qi-by-leetcode/

出典:ボタン(LeetCode)滞在
//leetcode-cn.com/problems/container-with-most-waterます。https:リンクを
すべてのネットワークからの控除が著作権を保有。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。

おすすめ

転載: www.cnblogs.com/panjingshuang/p/11628166.html