zoukankan      html  css  js  c++  java
  • leetcode 349 两个数组的交集

    // 方法1
    public static int[] intersection(int[] nums1, int[] nums2) {
        if (nums1 == null || nums1.length == 0
            || nums2 == null || nums2.length == 0) {
            return new int[]{};
        }
    
        List<Integer> integerNum1 = new ArrayList<>();
        Map<Integer, Integer> integers = new HashMap<>();
        for (int num : nums1) {
            if (!integerNum1.contains(num))
                integerNum1.add(num);
        }
        for (int num : nums2) {
            if (integerNum1.contains(num)) {
                integers.put(num, 1);
            }
        }
        int[] res = new int[integers.size()];
        int index = 0;
        for (Map.Entry entry : integers.entrySet()) {
            res[index++] = (int)entry.getKey();
        }
        return res;
     }
    
    // 方法2
    public static int[] intersection(int[] nums1, int[] nums2) {
        if (nums1 == null || nums1.length == 0
            || nums2 == null || nums2.length == 0) {
            return new int[]{};
        }
    
        Set<Integer> integerSet = new HashSet<>();
        for (int num : nums1) {
            integerSet.add(num);
        }
        int[] res = new int[nums2.length];
        int index = 0;
        for (int num : nums2) {
            if (integerSet.contains(num)) {
                res[index++] = num;
                integerSet.remove(num);
            }
        }
        return Arrays.copyOf(res, index);
    }
    
    // 测试用例
    public static void main(String[] args) {
        int[] nums1 = new int[]{1, 2, 2, 1}, nums2 = new int[]{2, 2};
        int[] ans = intersection(nums1, nums2);
        System.out.println("Intersection demo01 result:");
        for (int res : ans) {
            System.out.print(res + " ");
        }
        System.out.println();
        nums1 = new int[]{4, 9, 5};
        nums2 = new int[]{9, 4, 9, 8, 4};
        ans = intersection(nums1, nums2);
        System.out.println("Intersection demo02 result:");
        for (int res : ans) {
            System.out.print(res + " ");
        }
        System.out.println();
    }
    

    leetcode 350: 两个数组的交集II
    https://www.cnblogs.com/fyusac/p/13292985.html

  • 相关阅读:
    git版本回退问题记录
    git add的各种情况分类
    代码优化积累【持续更新】
    package.json和package-lock.json的区别
    new Date在IE下面兼容问题
    git fetch和git pull的区别
    Node.Js的热更新服务——supervisor
    springboot 指定启动环境
    java后台解决上传图片翻转90的问题,有demo,经过测试可用
    intellij IDEA 实用快捷键
  • 原文地址:https://www.cnblogs.com/fyusac/p/13913356.html
Copyright © 2011-2022 走看看