码迷,mamicode.com
首页 > 其他好文 > 详细

496. Next Greater Element I - LeetCode

时间:2018-07-04 22:41:04      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:break   new   img   .com   https   元素   esc   etc   ddn   

Question

496.?Next Greater Element I

技术分享图片

Solution

题目大意:给你一个组数A里面每个元素都不相同。再给你一个数组B,元素是A的子集,问对于B中的每个元素,在A数组中相同元素之后第一个比它的元素是多少。
思路:把nums1中的元素存储到一个map里,遍历nums2,如果能从map中取到值,就遍历nums2中后续元素的值并与当前元素做比较,如果存在比当前元素大的值就取该值(第一个),否则返回-1.
Java实现:

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;
}

496. Next Greater Element I - LeetCode

标签:break   new   img   .com   https   元素   esc   etc   ddn   

原文地址:https://www.cnblogs.com/okokabcd/p/9265507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!