深圳网站建设哪家比较好,网站制作设计收费,app推广一年赚了百万,国内做外贸网站的有哪些资料文章目录 1. 题目来源2. 题目解析 1. 题目来源
链接#xff1a;2670. 找出不同元素数目差数组
2. 题目解析
哈希计数统计就行了#xff0c;题解里有看到用 long 64 位进行状态压缩的#xff0c;可以参考下。这类题就不纠结写法了。
思路#xff1a;
两个哈希表#x… 文章目录 1. 题目来源2. 题目解析 1. 题目来源
链接2670. 找出不同元素数目差数组
2. 题目解析
哈希计数统计就行了题解里有看到用 long 64 位进行状态压缩的可以参考下。这类题就不纠结写法了。
思路
两个哈希表一个统计前缀、一个统计后缀。哈希表的 size 就是不同元素的个数。先统计后缀元素依次入哈希表。再顺序遍历维护前缀哈希表size 差值就是答案。注意后缀哈希表元素个数为 0 时需要 erase 掉 时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( 1 ) O(1) O(1) class Solution {
public:vectorint distinctDifferenceArray(vectorint nums) {int n nums.size();unordered_mapint, int l, r;for (int i n - 1; ~i; i -- ) r[nums[i]] ;vectorint res(n);for (int i 0; i n; i ) {l[nums[i]] ;r[nums[i]] -- ;if (r[nums[i]] 0) r.erase(nums[i]);res[i] l.size() - r.size();}return res;}
};