//暴力算法classSolution{publicint[]nextGreaterElement(int[] nums1,int[] nums2){int m = nums1.length, n = nums2.length;int[] res =newint[m];for(int i =0; i < m;++i){int j =0;while(j < n && nums2[j]!= nums1[i]){++j;}int k = j +1;while(k < n && nums2[k]< nums2[j]){++k;}
res[i]= k < n ? nums2[k]:-1;}return res;}}//单调栈处理publicint[]nextGreaterElement(int[] nums1,int[] nums2){Stack<Integer> stack =newStack<>();int[] res =newint[nums1.length];Arrays.fill(res,-1);Map<Integer,Integer> map =newHashMap<>();for(int i =0; i < nums1.length; i++){
map.put(nums1[i], i);}
stack.add(0);for(int i =1; i < nums2.length; i++){if(nums2[i]<= nums2[stack.peek()]){
stack.add(i);}else{while(!stack.isEmpty()&& nums2[stack.peek()]< nums2[i]){if(map.containsKey(nums2[stack.peek()])){Integer index = map.get(nums2[stack.peek()]);
res[index]= nums2[i];}
stack.pop();}
stack.add(i);}}return res;}