# LeetCode – Arrays – Next Greater Element I

You are given two arrays (without duplicates) `nums1` and `nums2` where `nums1`’s elements are subset of `nums2`. Find all the next greater numbers for `nums1`‘s elements in the corresponding places of `nums2`.

The Next Greater Number of a number x in `nums1` is the first greater number to its right in `nums2`. If it does not exist, output -1 for this number.

Example 1:

```Input: nums1 = [4,1,2], nums2 = [1,3,4,2].
Output: [-1,3,-1]
Explanation:
For number 4 in the first array, you cannot find the next greater number for it in the second array, so output -1.
For number 1 in the first array, the next greater number for it in the second array is 3.
For number 2 in the first array, there is no next greater number for it in the second array, so output -1.
```

Example 2:

```Input: nums1 = [2,4], nums2 = [1,2,3,4].
Output: [3,-1]
Explanation:
For number 2 in the first array, the next greater number for it in the second array is 3.
For number 4 in the first array, there is no next greater number for it in the second array, so output -1.
```

Note:

1. All elements in `nums1` and `nums2` are unique.
2. The length of both `nums1` and `nums2` would not exceed 1000.
``class Solution {    public int[] nextGreaterElement(int[] nums1, int[] nums2) {       int[] result = new int[nums1.length];        for(int i=0;i<nums1.length;i++){           int index = getIndex(nums2,nums1[i]);           if(index == nums2.length) result[i] = -1;           else{               boolean found = false;               for(int j=index+1;j<nums2.length;j++){                  if(nums1[i] < nums2[j]) {                      found = true;                      result[i] = nums2[j];                      break;                  }               }               if(!found) result[i] = -1;           }       }                 return result;      }        public static int getIndex(int[] n, int target){        return IntStream.range(0, n.length)                    .filter(i -> target == n[i])                    .findFirst()                    .orElse(-1);    }}``