トピックタグ:リンクリスト、スタック
タイトルは、それが次の大きな数だ、の各番号に見つける聞かせて、私たちにリンクされたリストを提供します。
まず、数字の背後に動作するように簡単、リンクリストの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); // スタックにインデックスを保存 } 戻り解像度。 } }
LeetCodeタイトルリスト- LeetCode質問一覧
トピック出典ます。https://leetcode.com/