350. Intersection of Two Arrays II
来源:互联网 发布:易我数据恢复好用吗 编辑:程序博客网 时间:2024/06/05 18:52
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2, 2]
.
Note:
- Each element in the result should appear as many times as it shows in both arrays.
- The result can be in any order.
public class Solution { public int[] intersect(int[] nums1, int[] nums2) { Map<Integer,Integer> s=new HashMap<>(); List<Integer> q=new ArrayList<>(); for(int i:nums1){ s.put(i,s.getOrDefault(i,0)+1); } for(int i:nums2){ if(s.containsKey(new Integer(i))){ if(s.get(i)-1<0) s.remove(i); else { s.put(i,s.get(i)-1); q.add(i); } } } int[] result=new int[q.size()]; for(int i=0;i<q.size();i++){ result[i]=q.get(i).intValue(); } return result; }}
这是使用HashMap集合的方法解决问题,还有一种方式是首先通过排序将数组排序,然后根据大小顺序依次输出
public class Solution { public int[] intersect(int[] nums1, int[] nums2) { Arrays.sort(nums1); Arrays.sort(nums2); int[] flag=new int[nums1.length]; int z=0; for(int i=0,j=0;i<nums1.length&&j<nums2.length;){ if(nums1[i]<nums2[j])i++; else if(nums1[i]>nums2[j]) j++; else { flag[z]=nums1[i]; i++; z++; j++; } } int[] result=new int[z]; System.arraycopy(flag,0,result,0,z); return result; }}
阅读全文
0 0
- 350. Intersection of Two Arrays II
- LeetCode 350. Intersection of Two Arrays II
- leetcode.350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II【E】
- 350. Intersection of Two Arrays II
- [leetcode] 350. Intersection of Two Arrays II
- Leetcode 350. Intersection of Two Arrays II
- leetcode 350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II
- Leetcode 350. Intersection of Two Arrays II
- [leetcode] 350. Intersection of Two Arrays II
- leetcode 350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II
- 【leetcode】350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II
- 350. Intersection of Two Arrays II
- 数据结构--图--拓扑排序/关键路径/AOE/AOV
- java关键字
- 服务器的编写
- Glide系列
- Linux网络编程之"获取网络天气信息"
- 350. Intersection of Two Arrays II
- [设计模式](五):适配器模式(Adapter)[类适配器、对象适配器、接口适配器]
- MySQL中授权(grant)和撤销授权(revoke)
- 详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息
- Android 如何根据比例绘制一个不同颜色的圆
- Problems Solving--Q&&A(Period One)
- 好用的文字垂直轮播控件
- SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- 软件测试基础学习