• 350. Intersection of Two Arrays II


    这个题有收获啊。。。。

    前面不说了,MAP之后各遍历一次就行。

    SORT之后可以用2个PTR从最左边开始,能提前结束。

    排序之后的思路:
    遍历smaller array,看看每个元素在大的里面能不能找到,找的话返还位置,用的二分查找INDEX,找到直接在大的里面从头修改就行了。最后返还修改的部分。

    public class Solution {
        public int[] intersect(int[] nums1, int[] nums2) {
            if(nums1.length == 0 || nums2.length == 0) return new int[0];
            
            Arrays.sort(nums1);
            Arrays.sort(nums2);
            
            int[] small;
            int[] large;
            if(nums1.length < nums2.length){
                small = nums1;
                large = nums2;
            }else{
                small = nums2;
                large = nums1;
            }
            
    
            
            int left = 0;
            int right = 0;
    
    
            for(int i = 0; i < small.length; i++){
                int firstIndex = binarySearch(large,right,small[i]);
                if(firstIndex == -1) continue;
                else{
                    
                    large[left++] = large[firstIndex];
                    right = firstIndex+1;
                }
            }
            return Arrays.copyOf(large,left);
        }
        
        
        public int binarySearch(int[] nums, int start, int target){
            if(start >= nums.length) return -1;
            int l = start;
            int r = nums.length-1;
            while(l <= r){
                int M = nums[l] + (nums[r] - nums[l])/2;
                if(M < target) l++;
                else r--;
                    
                
            }
            //System.out.println(l);
            if(l >= 0 && l < nums.length && nums[l] == target) return l;
            else return -1;
        }
    }
    /*
    []
    []
    [1,2,3,4,5,6,5,44,5,6,7,5,5,4,3,3,2,3,4,5,5,6,7]
    [2,3,4,2,3,4,3,2,1,1,3,4,4,5,2,2,3,4,99]
    */
    

    还是挺有意思的。。

    有电面啦!!!!!!!!!!
    image
    加油啊!!!!

  • 相关阅读:
    Mybatis学习笔记2:第一个Mybatis使用实例
    Mybatis学习笔记1:Mybatis简介
    springcloud Eureka 服务注册与发现
    springcloud rest微服务案例
    springmvc返回json
    springboot 集成mybatisplus
    vue axios使用
    vue前后端交互方式
    day3
    D. Count the Arrays
  • 原文地址:https://www.cnblogs.com/reboot329/p/5979390.html
Copyright © 2020-2023  润新知