【无标题】LeetCode第290场周赛

T1:多个数组求交集 看到这个题的第一眼其实思路不太清晰,于是我跳到了第二题(没错,我就是这般没有毅力)然后看了眼第二题我又跳回来了,突然就觉得思路出来了。将二维数组中的所有元素全部用哈希表计数。最后返回元素个数为nums的长度就好了。

class Solution {
          
   
public:
    vector<int> intersection(vector<vector<int>>& nums) {
          
   
        unordered_map<int,int>hash;
        vector<int>res;
        int n=nums.size();
        for(int i=0;i<nums.size();i++){
          
   
            for(auto&c:nums[i]){
          
   
                hash[c]++;
            }
        }
        for(auto&[c,count]:hash){
          
   
            if(count==n)res.push_back(c);
        }
        sort(res.begin(),res.end());
        return res;
    }
};

T2:统计圆内格点数目 这个题我一开始就直接陷入了一个广度优先搜索里面出不来了。后来发现,其实可以直接枚举,把在范围内的所有点遍历一遍,找出符合要求的就好了。

class Solution {
          
   
public:
    int countLatticePoints(vector<vector<int>>& circles) {
          
   
        int count=0;
        for(int i=0;i<=200;i++){
          
   
            for(int j=0;j<=200;j++){
          
   
                for(auto &c:circles){
          
   
                    int x=c[0],y=c[1],r=c[2];
                    if((i-x)*(i-x)+(j-y)*(j-y)<=r*r){
          
   
                        count++;
                        break;
                    }
                }
            }
        }
        return count;
    }
};
经验分享 程序员 微信小程序 职场和发展