package question;import java.util.HashMap;import java.util.Stack;/*@author: Roderland@create: 2020年08月18日---14:05*/public class Question496 {public int[] nextGreaterElement(int[] nums1, int[] nums2) {int[] array = new int[nums1.length];int[] index = new int[nums1.length];for (int i = 0; i < nums1.length; i++) {for (int j = 0; j < nums2.length; j++) {if (nums2[j]==nums1[i]) {index[i]=j;break;}}}for (int i = 0; i < nums1.length; i++) {boolean flag = false;for (int j = index[i]+1; j < nums2.length; j++) {if (nums2[j]>nums1[i]) {flag=true;array[i]=nums2[j];break;}}if (!flag) array[i]=-1;}return array;}//solution2public static void main(String[] args) {//nums1 = [4,1,2], nums2 = [1,3,4,2].int[] nums1 = new int[]{4,1,2};int[] nums2 = new int[]{1,3,4,2};new Question496().nextGreaterElement2(nums1, nums2);}public int[] nextGreaterElement2(int[] nums1, int[] nums2) {int[] array = new int[nums1.length];Stack<Integer> stack = new Stack<>();HashMap<Integer, Integer> hashMap = new HashMap<>();for (int i = 0; i < nums2.length; i++) {while (!stack.isEmpty()&&nums2[i]>stack.peek()) {hashMap.put(stack.pop(), nums2[i]);}stack.push(nums2[i]);}while (!stack.isEmpty()) {hashMap.put(stack.pop(), -1);}for (int i = 0; i < nums1.length; i++) {array[i] = hashMap.get(nums1[i]);}return array;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。