最大のオファー64.スタックとキューは、ウィンドウをスライディング、安全性を証明します

タイトル説明

すべての値のうちの最大値を見つけるために、ウィンドウをスライド、アレイ、およびスライディングウィンドウのサイズを考えます。例えば、入力配列のサイズ及び{2,3,4,2,6,2,5,1} 3は、スライディングウィンドウ場合、次いで、それらの最大値は、{4,4,6- 6つのスライディングウィンドウの合計の存在であります6,6,5};それ持つスライディングウィンドウの次の6つのアレイ{2,3,4,2,6,2,5,1}:{[2,3,4]、2,6,2,5 、1}、{2、[3,4,2]、6,2,5,1}、{2,3、[4,2,6]、2、5}、{2,3,4 、[2,6,2]、5,1}、{2,3,4,2、[6,2,5]、1}、{2,3,4,2,6、[2,5、 1]}。

問題解決のためのアイデア

配列を通じて、キューがデジタルウィンドウサイズがロードされ、キューの最大数は、に行きます

コードは以下の通りです

 

パブリック クラスMaxInWindows {
     公共のArrayList <整数> maxInWindows(INT [] NUM、int型のサイズ)
    { 
        場合(サイズ== 0 || num.lengthが== 0 ){
             戻り 新規のArrayList <整数> (); 
        } { 
            のArrayList <整数>リスト= 新規のArrayList <整数> ();
            以下のためにint型 i = 0; iは<num.lengthサイズ+ 1; I ++ ){ 
                キュー <整数>キュー= 新しい LinkedListの<整数> ();
                にとってint型 J = I; J <iはサイズ+; J ++ ){ 
                    
                    queue.add(NUM [J])。
                } 
             int型の最大値= はInteger.MIN_VALUE。
             以下のための(整数整数:キュー){ 
                 最大 = Math.max(MAX、整数); 
             } 
             list.add(MAX)。
            
        
            } 
            戻りリスト。
        } 
        
        
        
    } 
    パブリック 静的 ボイドメイン(文字列[]引数){ 
        MaxInWindows maxInWindows = 新しいMaxInWindows()。
        INT [] NUM = 新しい int型[] {2,3,4,2,6,2,5,1 }。
        ArrayList <整数>リスト= maxInWindows.maxInWindows(NUM、3 )。
        以下のための(整数整数:リスト){ 
            System.out.printlnは(整数)。
        } 
        
    } 
}

 

 

 

おすすめ

転載: www.cnblogs.com/Transkai/p/11423413.html