【无标题】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; } };