LeetCode第350题

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]

示例 2:

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]

思路:1.将两个数组排序

2.分别遍历两个数组,并依次比较元素的大小,若nums1中的元素大的话,则nums2中的索引加1,如果nums1中的元素小的话,则nums1中的索引加1,否则(两个元素相等),将元素存到List集合中。

	public int[] intersect(int[] nums1,int[] nums2){
		Arrays.sort(nums1);
		Arrays.sort(nums2);
		List<Integer> list=new ArrayList<>();
		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{
				list.add(nums1[i]);
				i++;
				j++;
			}
		}
		int[] result=new int[list.size()];
		for(int i=0;i<list.size();i++){
			result[i]=list.get(i);
		}
		return result;
	}

猜你喜欢

转载自blog.csdn.net/qq_37764098/article/details/85282945