zoukankan      html  css  js  c++  java
  • LeetCode349、350. 两个数组的交集

     分析:使用集合

    import java.util.ArrayList; // 动态数组
    import java.util.TreeSet; // 基于搜索树的集合类
    
    class Solution {
        public int[] intersection(int[] nums1, int[] nums2) {
            TreeSet<Integer> set = new TreeSet<>();
            for(int num: nums1){
                set.add(num);  // 对nums1去重
            }
            
            ArrayList<Integer> list = new ArrayList<>();
            for(int num : nums2){
                if(set.contains(num)){
                    list.add(num);
                    set.remove(num);  // 把添加过的元素删除,下一轮就找不到这个元素了
                }
            }
            int[] res = new int[list.size()];
            for(int i = 0 ;i <list.size() ; i++){
                res[i] = list.get(i);
            }
            return res;
    
        }
    }
    Solution 1

     

     

     分析:可以使用允许用重复元素的集合,也可以使用映射(元素,频次)

    import java.util.ArrayList;
    import java.util.TreeMap; // 基于平衡二叉树的映射类
    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 < list.size(); i++){
                res[i] = list.get(i);
            }
            return res;
    
        }
    }
    Solution 1
  • 相关阅读:
    guxh的python笔记一:数据类型
    guxh的python笔记三:装饰器
    guxh的python笔记十:包和模块
    guxh的python笔记六:类的属性
    guxh的python笔记四:迭代
    流畅的python笔记
    spring面试大全
    Spring面试问答
    Hibernate的10个常见面试问题及答案
    reflect 机制
  • 原文地址:https://www.cnblogs.com/HuangYJ/p/12830321.html
Copyright © 2011-2022 走看看