496. Next Greater Element I - LeetCode
生活随笔
收集整理的這篇文章主要介紹了
496. Next Greater Element I - LeetCode
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
Question
496.?Next Greater Element I
Solution
題目大意:給你一個(gè)組數(shù)A里面每個(gè)元素都不相同。再給你一個(gè)數(shù)組B,元素是A的子集,問對(duì)于B中的每個(gè)元素,在A數(shù)組中相同元素之后第一個(gè)比它的元素是多少。 思路:把nums1中的元素存儲(chǔ)到一個(gè)map里,遍歷nums2,如果能從map中取到值,就遍歷nums2中后續(xù)元素的值并與當(dāng)前元素做比較,如果存在比當(dāng)前元素大的值就取該值(第一個(gè)),否則返回-1. Java實(shí)現(xiàn):
public int[] nextGreaterElement(int[] nums1, int[] nums2) {Map<Integer, Integer> map = new HashMap<>();for (int tmp : nums1) {map.put(tmp, -1);}for (int i = 0; i < nums2.length; i++) {int tmp = nums2[i];Integer nextGreaterElement = map.get(tmp);if (nextGreaterElement != null) {for (int j=i+1; j<nums2.length; j++) {if (tmp < nums2[j]) {nextGreaterElement = nums2[j];break;}}map.put(tmp, nextGreaterElement);// System.out.println(tmp + ", " + nextGreaterElement);}}// System.out.println();int[] result = new int[nums1.length];for (int i = 0; i < nums1.length; i++) {result[i] = map.get(nums1[i]);// System.out.print(result[i] + ",");}return result; }轉(zhuǎn)載于:https://my.oschina.net/yysue/blog/1840349
總結(jié)
以上是生活随笔為你收集整理的496. Next Greater Element I - LeetCode的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js代码实现购物车效果
- 下一篇: 微信支付教程系列之公众号支付