350. 两个数组的交集 II --力扣 --JAVA
2023-12-21 12:18:53
    		题目
给你两个整数数组?
nums1?和?nums2?,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。
解题思路
- 对两个数组进行排序整理;
 - 从索引0开始对数组进行遍历,创建List来存储相同的数据;
 - 元素相等则添加到List中并且索引都右移一位;
 - 元素不相等则小的索引右移大的不变。
 
代码展示
class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int index1 = 0;
        int index2 = 0;
        int n = nums1.length;
        int m = nums2.length;
        List<Integer> data = new ArrayList<>();
        while (index1 < n && index2 < m){
            if(nums1[index1] == nums2[index2]){
                data.add(nums1[index1]);
                index1++;
                index2++;
            } else if(nums1[index1] > nums2[index2]){
                index2++;
            } else {
                index1++;
            }
        }
        int[] ans = new int[data.size()];
        for (int i = 0; i < data.size(); i++){
            ans[i] = data.get(i);
        }
        return ans;
    }
} 
    		
    			文章来源:https://blog.csdn.net/qq_45794129/article/details/135124684
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
    	本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!