zoukankan      html  css  js  c++  java
  • JAVA取数两个数组交集,考虑重复和不重复元素

    1.考虑不重复元素,重复元素不添加

    import java.awt.List;
    import java.util.ArrayList;
    import java.util.TreeSet;
    public class Solution {
         public static int[] intersection(int[] nums1,int[] nums2){
        	TreeSet<Integer> set =new TreeSet<>();
        	for(int num : nums1)//把不重复的nums1加入到集合中
        		set.add(num);
        	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;
         }
         public static void main(String[] args) {
        	 int[] nums1={1,2,2,1};
        	 int[] nums2={2,2};
        	 System.out.println("shuju"+intersection(nums1,nums2));
         }
    }
    

      2.重复元素添加

    import java.util.ArrayList;
    import java.util.TreeMap;
    
    public class Solution1 {
    	public static 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;
    	}
    }
    

      

  • 相关阅读:
    UART协议
    芯片时钟体系(take example as s3c2440)
    PCIe协议
    I2C协议
    SPI协议
    嵌入式相关术语列表
    TreeView控件数据绑定之:数据库数据递归绑定
    连接SQL Server 数据库的三种方式
    JS小功能之:五角星评论
    MVC学习之开发技巧总结(1)
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/10702273.html
Copyright © 2011-2022 走看看