> For the complete documentation index, see [llms.txt](https://emmaguo100.gitbook.io/leetcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emmaguo100.gitbook.io/leetcode/04-28-2022.md).

# 04/28/2022

```
// Some code
class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int[] res = new int[nums1.length];
        for (int i = 0; i < nums1.length; i++){
            for (int j = 0; j < nums2.length; j++){
                if (nums1[i] == nums2[j]){
                     for (j = j + 1; j < nums2.length; j++){
                        if(nums2[j] > nums1[i]) {
                            res[i] = nums2[j];
                            break;
                        }
                    }
                    
                 }
                if (j == nums2.length) res[i] = -1;
                
            }

        }
         return res;
    }
}
```

```
// Some code
class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int[] res = new int[nums1.length];
        int j;
        
        for (int i = 0; i < nums1.length; i++){
            boolean found = false;
            for (j = 0; j < nums2.length; j++){
                if (found && nums2[j] > nums1[i]){
                    res[i] = nums2[j];
                    break;
                }
                
                if (nums1[i] == nums2[j]) found = true;    
            }
            if(j == nums2.length) res[i] = -1;
        }
        return res;
    }
}
```

//use hashmap to optimze: find the same value in the nums2 more fast!!!

```
// Some code
class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int[] res = new int[nums1.length];
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0 ; i < nums2.length; i++){
            map.put(nums2[i], i);
        }
        
        int j;
        for (int i = 0; i < nums1.length; i++){
            for (j = map.get(nums1[i]) + 1; j < nums2.length; j++){
                if (nums1[i] < nums2[j]){
                    res[i] = nums2[j];
                    break;
                }
            }
            if (j == nums2.length) res[i] = -1;
        }
        return res;
    }
}
```
