news 2026/6/23 21:03:49

presum|二分try+滑窗cnt

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
presum|二分try+滑窗cnt

lc1198

hash统计二维矩阵中所有数字的出现次数,找出出现次数等于矩阵行数的最小数字,无则返回 -1

class Solution {
/*
输入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]]
输出:5
*/
public:
int smallestCommonElement(vector<vector<int>>& mat)
{
int m=mat.size(),n=mat[0].size();
unordered_map<int,int> hash;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
hash[mat[i][j]]++;
}
}
int mn=INT_MAX;
for(auto& [a,b]:hash)
{
if(b==m) mn=min(mn,a);
}
return mn==INT_MAX?-1:mn;
}
};

lc1918

堆tle...

二分try答案 + 越短越合法-滑窗_计数check vs k典题

二分猜子数组和的大小

滑窗 数出“和不超过这个数”的子数组有多少个

不断缩小范围,最终找到第k小的和

class Solution {

typedef long long ll;

public:

int kthSmallestSubarraySum(vector<int>& nums, int k)

{

int n = nums.size();

int l = *min_element(nums.begin(), nums.end());

int r = accumulate(nums.begin(), nums.end(), 0);

while (l <= r) {

int m = l + (r - l) / 2;

int c = cnt(nums, m);

if (c < k) l = m + 1;

else r = m-1;

}

return l;

}

private:

//越短越合法滑窗

int cnt(vector<int>& nums, int t)

{

int n = nums.size(), c = 0, s = 0, l = 0;

for (int r = 0; r < n; ++r) {

s += nums[r];

while (s > t) {

s -= nums[l];

l++;

}

c += r - l + 1; //不超过的子数组个数

}

return c;

}

};

lc2743

越短越合法 滑窗

ret += (r - l + 1);

class Solution {
public:
int numberOfSpecialSubstrings(string s) {
int n = s.size();
int l = 0, ret = 0;
unordered_map<char, int> hash;
for (int r = 0; r < n; r++) {
while (hash.count(s[r]) && hash[s[r]] >= 1) {
hash[s[l]]--;
l++;
}
hash[s[r]] = 1;
ret += (r - l + 1);//cal
}
return ret;
}
};

lc3652

前缀和_分为了3部分

预处理两个前缀和(ps_sum,​​​​ p_sum)

枚举修改的子数组,改后利润=改前两边利润(ps_sum)+改后子数组的部分售价和(按照题目规则可知: 为k/2后半部分p_sum),取最大利润。

class Solution {
public:
long long maxProfit(vector<int>& prices, vector<int>& strategy, int k)

{
int n = prices.size();
vector<long long> sum(n + 1), sum_sell(n + 1);
for (int i = 0; i < n; i++) {
sum[i + 1] = sum[i] +prices[i] * strategy[i];
sum_sell[i + 1] = sum_sell[i] +prices[i];
}

long long ans = sum[n]; // 不修改
for (int i = k; i <= n; i++) {
long long res = sum[i - k] + sum[n] - sum[i] + sum_sell[i] - sum_sell[i - k / 2];
ans = max(ans, res);
}
return ans;
}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:01:41

Web自动化测试:Unittest单元测试框架

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、unitest基础写法格式1.1引用导入import unittest并且需要新建一个类&#xff0c;继承unittestclass Demo(unittest.TestCase):1.2格式代码示例备注&#xf…

作者头像 李华
网站建设 2026/6/22 9:38:06

Apache2最佳实践

Apache2最佳实践&#xff1a;从性能优化到安全加固的全维度指南Apache2&#xff08;httpd&#xff09;作为开源Web服务器的标杆&#xff0c;其默认配置仅能满足基础运行需求&#xff0c;在高并发、高安全等级的生产环境中往往力不从心。本文基于资深运维经验&#xff0c;从性能…

作者头像 李华
网站建设 2026/6/23 21:02:51

实力派,也可以是偶像派

谁说高性能设备就得是灰头土脸的“黑盒子”&#xff1f;绿算技术GP Spark表示&#xff1a;我不服。这台小钢炮&#xff0c;除了能打&#xff0c;还能“搭”。全铝外壳支持高级配色定制&#xff1a;无论是“西装暴徒”雅黑、“富贵逼人”流光金、“深邃学霸”宝石蓝&#xff0c;…

作者头像 李华
网站建设 2026/6/23 18:59:01

基于单片机的多功能万年历

一、系统设计目标与需求分析 在日常时间管理与环境监测需求的推动下&#xff0c;基于单片机的多功能万年历突破了传统日历的功能局限&#xff0c;旨在构建集时间显示、环境感知、智能提醒于一体的小型电子终端。核心需求包括&#xff1a; 时间与日期管理&#xff1a;精确显示年…

作者头像 李华
网站建设 2026/6/22 20:52:01

AI搜索时代:技术演进、产业分化与深度变革

“AI搜索时代”的到来&#xff0c;并非仅仅是搜索引擎界面多了一个聊天框&#xff0c;而是一场从底层逻辑到社会影响的深刻重构。它正在重新定义我们如何获取信息、处理知识乃至进行社会连接。本系列将不涉及任何具体产品或公司的推广&#xff0c;而是从宏观趋势、产业分化、内…

作者头像 李华
网站建设 2026/6/22 2:45:09

SGMICRO圣邦微 SGM2019-2.5YC5G/TR SC70-5 线性稳压器(LDO)

特性工作输入电压范围&#xff1a;2.5V至5.5V固定输出电压&#xff1a;1.2V、1.5V、1.8V、2.5V、2.6V、2.8V、2.85V、3.0V、3.3V可调输出电压范围&#xff1a;1.2V至5.0V输出电压精度&#xff1a;25C时为2.5%低输出噪声&#xff1a;30μV_RMS&#xff08;典型值&#xff09;低压…

作者头像 李华