LeetCode(四)——Intersection of Two ArraysII

来源:互联网 发布:个性头像制作软件 编辑:程序博客网 时间:2024/06/08 00:19

题目: Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2].
解析:这个题目和第二道题的区别在于两个集合的交集可以有重复元素,这里在检测到一个集合中有另一个集合的元素时要删除,而且最后生成的List的长度要根据里面元素的多少而定,不能大,如果大了,自动会进行初始化,初始化数据为0,如果两个集合输入为空,那么会导致最后输出的交集为0,结果错误(我就是这个原因导致可以编译,但是提交代码的时候会出现错误)

public class Solution {    public int[] intersect(int[] nums1, int[] nums2) {        List<Integer> list1 = new ArrayList<Integer>();        List<Integer> list2 = new ArrayList<Integer>();//      int nums1[] = {1, 2, 3, 2};//      int nums2[] = {2,2};        // if(nums1.length == 0 || nums2.length == 0) {            // return [];        // }//      int len = nums1.length>nums2.length?nums1.length:nums2.length;        for(int i:nums1) {            list1.add(i);        }//      for(int i=0; i<nums2.length; i++) {          //  if(list1.contains(nums2[i])) {              //  list2.add(nums2[i]);              //  list1.remove(list1.indexOf(nums2[i]));          //  }//      }        for(int i:nums2) {            if(list1.contains(i)) {                list2.add(i);                list1.remove(list1.indexOf(i));            }        }        int result[] = new int[list2.size()];        int i=0;        for(int x:list2) {            result[i] = x;            System.out.println(x);            i++;        }//      return list2.toArray();        return result;    }}

坚持!

0 0
原创粉丝点击