映射 04 Leetcode中的350号问题

350.两个数组的交集 II

class Solution { 

    public int[] intersect(int[] nums1, int[] nums2) {
        TreeMap<Integer, Integer> map = new TreeMap<>();
        for (int num : nums1) {
            if (!map.containsKey(num)) {
                map.put(num, 1);
            } else {
                map.put(num, map.get(num) + 1);
            }
        }

        ArrayList<Integer> list = new ArrayList<>();
        for (int num : nums2) {
            if (map.containsKey(num)) {
                list.add(num);
                map.put(num, map.get(num) - 1);
                if (map.get(num) == 0) {
                    map.remove(num);
                }
            }
        }

        int[] res = new int[list.size()];
        for (int i = 0; i < res.length; i++) {
            res[i] = list.get(i);
        }
        return res;
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于对数据结构和算法掌握的不熟练,目前是小白入门阶段,痛下决心,要好好补一补。从大神大牛的算法学习,逐渐自己加强自...
    我是谁之自我发现阅读 701评论 1 2
  • 本文内容为练习LeetCode题目时的解题思路和不同算法的记录,实现语言为C++,代码保存在Github,均已在L...
    SK木眠阅读 1,042评论 0 0
  • 按照 探索 中初级-中级-高级的顺序刷题,下面是目前完成的题解,未完成版,随时更新。 18/08/30更新 回溯算...
    whd_Alive阅读 410评论 0 2
  • 三步曲解决工作效率1.收集整理各类需要处理事件,2.把各类事情按轻重缓急优先等级排列顺序,3.采用25分钟蕃茄工作...
    志盛涂料陈恩群阅读 152评论 0 0
  • ObjectAnimator可以实现多种动画效果,包括透明度,移动,旋转,缩放,并且非常简单 透明度设置: 缩放:...
    UniThan阅读 423评论 0 0