news 2026/6/10 11:36:30

启发式|前缀和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
启发式|前缀和

lc2424

单指针

用一个布尔数组标记已上传的视频,每次上传后更新当前连续上传前缀的最大长度,直接返回这个长度即可

class LUPrefix {
public:
int n;
bool * visited;
int ID;

LUPrefix(int n) {
this->n = n;
visited = new bool[n + 1];
for (int i = 0; i < n + 1; i ++){
visited[i] = false;
}
ID = 0;
}

void upload(int video) {
visited[video] = true;
while (ID + 1 <= n && visited[ID + 1] == true)
ID ++;

}

int longest() {
return ID;
}
};

按秩合并是启发式合并在并查集里的具体实现

按秩合并的“秩”(通常是树的高度或节点数)是启发式合并选择合并方向的核心依据,本质是通过让小树合并到大树下,避免并查集退化成链表,保证操作的时间复杂度接近常数


class DSU {

private:

vector<int> parent;

vector<int> rank;

public:

DSU(int n) {

parent.resize(n);

rank.resize(n, 1);

for (int i = 0; i < n; i++) parent[i] = i;

}

int find(int x) {

if (parent[x] != x) parent[x] = find(parent[x]);

return parent[x];

}

void unite(int x, int y) {

int fx = find(x), fy = find(y);

if (fx == fy) return;

if (rank[fx] < rank[fy]) parent[fx] = fy;

else {

parent[fy] = fx;

if (rank[fx] == rank[fy]) rank[fx]++;

}

}

};

lc1292

二维前缀和

预处理: sum[i + 1][j + 1] = sum[i + 1][j] + sum[i][j + 1] - sum[i][j] + mat[i][j];

求解: int t = sum[r2][c2] - sum[r2][c1] - sum[r1][c2] + sum[r1][c1];

二维前缀和快速计算矩阵内正方形子矩阵的和,遍历所有可能的正方形,找出不超过阈值的最大边长

class Solution {
public:
int maxSideLength(vector<vector<int>>& mat, int threshold)
{
vector<vector<int>> sum;
int m = mat.size(), n = mat[0].size();
sum.resize(m + 1, vector<int>(n + 1));
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
sum[i + 1][j + 1] = sum[i + 1][j] + sum[i][j + 1] - sum[i][j] + mat[i][j];
}
}
int mx=0;
for(int r1=0;r1<m;r1++)
{
for(int c1=0;c1<n;c1++)
{
for(int k=mx+1; r1+k<=m && c1+k<=n; k++)
{
int r2 = r1 + k, c2 = c1 + k;
int t = sum[r2][c2] - sum[r2][c1] - sum[r1][c2] + sum[r1][c1];
if(t <= threshold)
mx = k;
else
break;
}
}
}
return mx;
}
};

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

基于51/STM32单片机自动售货机扫码支付无人超市缺货补货语音设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51/STM32单片机自动售货机扫码支付无人超市缺货补货语音设计STM32-S144-4种商品4路步进电机出货选货支付库存缺货提醒找零声光提醒按键TFT彩屏(无线方式选择) STM32-S144N无无线-无APP版: STM32-S144B蓝牙无线-APP版: STM32-S144W-WIFI无线-APP版: STM32-S144CAN-视频监控W…

作者头像 李华
网站建设 2026/6/6 20:44:23

免费Claude接入终极指南:5分钟搭建个人AI代理服务

免费Claude接入终极指南&#xff1a;5分钟搭建个人AI代理服务 【免费下载链接】AIClient-2-API Simulates Gemini CLI, Qwen Code, and Kiro client requests, compatible with the OpenAI API. It supports thousands of Gemini model requests per day and offers free use o…

作者头像 李华
网站建设 2026/6/6 20:45:05

高效VR视频下载全攻略:N_m3u8DL-RE专业工具深度解析

高效VR视频下载全攻略&#xff1a;N_m3u8DL-RE专业工具深度解析 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …

作者头像 李华
网站建设 2026/6/6 22:10:58

华硕笔记本风扇噪音终极解决方案:告别恼人异响的静音革命

华硕笔记本风扇噪音终极解决方案&#xff1a;告别恼人异响的静音革命 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目…

作者头像 李华
网站建设 2026/6/5 5:31:51

ComfyUI-Ollama实战指南:零基础搭建智能创作工作流

ComfyUI-Ollama实战指南&#xff1a;零基础搭建智能创作工作流 【免费下载链接】comfyui-ollama 项目地址: https://gitcode.com/gh_mirrors/co/comfyui-ollama 还在为AI模型复杂的部署流程而头疼吗&#xff1f;想要在可视化界面中直接调用大语言模型吗&#xff1f;Com…

作者头像 李华
网站建设 2026/6/9 15:42:59

高效流媒体下载:打造个人视频库的完整方案

高效流媒体下载&#xff1a;打造个人视频库的完整方案 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE 在当今数…

作者头像 李华