リンクされたリスト内LeetCode 1019次にグレーターノード(リンクされたリスト内の次の上位ノード)

トピックタグ:リンクリスト、スタック

  タイトルは、それが次の大きな数だ、の各番号に見つける聞かせて、私たちにリンクされたリストを提供します。

  まず、数字の背後に動作するように簡単、リンクリストのArrayListに格納されます。

  ArrayListのを横断し、最初の数字のそれぞれは、スタックを堆積する。私たちは、デジタルバック、その次のグレーター・ノードへのスタックの前にすることができます。

 

Javaのソリューション:

ランタイム:65%よりも早く39ミリ秒、 

メモリ使用率:40メガバイト、95%未満

完了日:2019年5月6日

キーポイント:スタックの使用

/ ** 
 *単一リンクリストのための定義。
 *パブリッククラスListNode { 
 * int型のval; 
 * ListNode次。
 * ListNode(INT X){ヴァル= X。} 
 *} 
 * / 
クラスソリューション{
     公共 のint [] nextLargerNodes(ListNodeヘッド){ 
        
        のArrayList <整数> NUMS = 新規のArrayList <> (); 
        スタック <整数>スタック= 新しいスタック<> ();
        int型[] RESを。
        
        // ArrayListのにすべての数字を救う
        ために(ListNodeノード=ヘッド;!ノード= ヌル ;ノード= node.next)
            nums.add(node.val)。
        
        RES = 新しい INT [nums.size()]。
        
        // 次の大きな要素を見つけるために使用スタック
        のためにint型 ;私は(nums.sizeを<); I = 0を私は++ 
        { 
            // 一度大きなNUMを見つけ、それがスタック内のすべての以前の番号をチェックします
            ながら!(stack.isEmpty( )&& nums.get(stack.peek())< nums.get(I))   
                RES [stack.pop()] = nums.get(I)。
            
            stack.push(I); // スタックにインデックスを保存
        } 
        
        戻り解像度。
    } 
}

参考:議論Le'e'tCode

LeetCodeタイトルリスト-  LeetCode質問一覧

トピック出典ます。https://leetcode.com/

おすすめ

転載: www.cnblogs.com/jimmycheng/p/11144975.html
おすすめ