ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

力扣375周赛

2026/9/13 19:48:44 拓冰建站 浏览量
力扣375周赛

力扣第375场周赛

统计已测试设备

差分数组优化

class Solution {
public:int countTestedDevices(vector<int> &batteryPercentages) {int dec = 0;for (int x : batteryPercentages) {dec += x > dec;}return dec;}
};

双模幂运算

快速幂模拟

class Solution {
public:long long qmi(int a, int b, int p)// a^b % p{long long res = 1 % p;while (b){if (b & 1) res = res * a % p;a = a * (long long)a % p;b >>= 1;}return res;}vector<int> getGoodIndices(vector<vector<int>>& variables, int target) {int n = variables.size();vector<int> ans;for(int i = 0 ; i < n ; i ++){int ai = variables[i][0] , bi = variables[i][1] , ci = variables[i][2] , mi = variables[i][3];if(qmi(qmi(ai , bi , 10) , ci , mi) == target)ans.push_back(i);}return ans;}
};

统计最大元素出现至少 K 次的子数组

滑窗统计K 次

class Solution {
public:long long countSubarrays(vector<int>& nums, int k) {int n = nums.size() , maxn = -1 ;for(auto x : nums)maxn = max(maxn , x);unordered_map<int , int> m;long long ans = 0;for(int i = 0 , j = 0 ; i < n ; i ++){m[nums[i]] ++;while(m[maxn] >= k){m[nums[j++]] --;}ans += j;}return ans;}
};

统计好分割方案的数目

区间合并求个数

class Solution {
public:int numberOfGoodPartitions(vector<int>& nums) {//找区间unordered_map<int,pair<int,int>> ps;for(int i = 0 ; i < nums.size() ; i ++){int x = nums[i];auto it = ps.find(x);if(it != ps.end()){it ->second.second = i;}else {ps[x] = {i , i};}}vector<pair<int,int>> a;for(auto &[_ , p] : ps){a.emplace_back(p);}//排序区间sort(a.begin() , a.end() , [](const auto &p , const auto &q){return p.first < q.first;});//区间合并int ans = 1;int max_r = a[0].second;for(int i = 1 ; i < a.size() ; i ++){int left = a[i].first , right = a[i].second;if(left > max_r){ans = ans * 2 % 1'000'000'007;}max_r = max(max_r, right);}return ans;}
};