Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.82 KB | None | 0 0
  1. public class Solution {
  2.     public int[] nextGreaterElements(int[] nums) {
  3.         int[] results = new int[nums.length];
  4.        
  5.         Deque<Integer> stack = new LinkedList<>();
  6.        
  7.         for (int i = 0; i < nums.length; ++i) {
  8.             while (!stack.isEmpty() && nums[i] > nums[stack.peekLast()]) {
  9.                 results[stack.removeLast()] = nums[i];
  10.             }
  11.             stack.addLast(i);
  12.         }
  13.        
  14.         for (int i = 0; i < nums.length; ++i) {
  15.             if (stack.isEmpty()) break;
  16.             while (!stack.isEmpty() && nums[i] > nums[stack.peekLast()]) {
  17.                 results[stack.removeLast()] = nums[i];
  18.             }
  19.         }
  20.        
  21.         while (!stack.isEmpty()) {
  22.             results[stack.removeLast()] = -1;
  23.         }
  24.        
  25.         return results;
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement