排序

作者: 雅芳 | 来源:发表于2018-08-27 14:11 被阅读2次

    1. Intersection of Two Arrays

    https://www.cnblogs.com/grandyang/p/5533305.html
    思路一:对两数组进行排序,然后比较大小。比如相等,则加到set中;否则,让小的那一方指针后移。

    class Solution {
        public int[] intersection(int[] nums1, int[] nums2) {
            Arrays.sort(nums1);
            Arrays.sort(nums2);
            Set<Integer> result= new HashSet<Integer>();
            int i=0;
            int j=0;
            while(i<nums1.length&&j<nums2.length){
                if(nums1[i] == nums2[j]){
                    result.add(nums1[i]); 
                    i++;
                    j++;
                }
                else if(nums1[i]>nums2[j]){
                    j++;
                }
                else if(nums1[i]<nums2[j]){
                    i++;
                }
            }
            int[] res = new int[result.size()];
            Object[] ob = result.toArray();
            for(int y=0;y<result.size();y++){
                res[y]=(int)ob[y];
            }
            return res;
        }
    }
    

    思路2:利用map。把数组1放到map中,然后遍历数组2,如果元素在map中,则加入到结果集里。

    相关文章

      网友评论

          本文标题:排序

          本文链接:https://www.haomeiwen.com/subject/hyabiftx.html