牡丹江市网站建设_网站建设公司_HTTPS_seo优化
2026/1/16 19:42:50 网站建设 项目流程

lc3796

正反两次扫描

class Solution {

public:
int findMaxVal(int n, vector<vector<int>>& restrictions, vector<int>& diff) {
vector<int> max_val(n, INT_MAX);
for (auto& r : restrictions)
max_val[r[0]] = r[1];

vector<int> a(n);
for (int i = 0; i < n - 1; i++) {
a[i + 1] = min(a[i] + diff[i], max_val[i + 1]);
}
for (int i = n - 2; i > 0; i--) {
a[i] = min(a[i], a[i + 1] + diff[i]);
}
return ranges::max(a);
}
};

lc3795

hash+滑窗

class Solution {
public:
int minLength(vector<int>& nums, int k) {
unordered_map<int, int> cnt;
int sum = 0;
int left = 0;
int ans = INT_MAX;
for (int i = 0; i < nums.size(); i++) {
// 1. 入
int x = nums[i];
cnt[x]++;
if (cnt[x] == 1)
sum += x;

while (sum >= k) {
// 2. 更新答案
ans = min(ans, i - left + 1);
// 3. 出
int out = nums[left];
cnt[out]--;
if (cnt[out] == 0)
sum -= out;

left++;
}
}

return ans == INT_MAX ? -1 : ans;
}
};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询