当前位置: 首页 > wzjs >正文

有关于网站建设类似的文章wordpress双首页

有关于网站建设类似的文章,wordpress双首页,汕头模板建站平台,重庆网站建设快忻目录 🔥 差分核心价值 🌟 一维差分模板 1. 核心思想 2. 代码实现 3. 动态图示 📦 二维差分模板 1. 核心公式 2. 代码实现 3. 二维修改示意图 🚨 六大避坑指南 💡 复杂度对比 🌈 LeetCode实战 &…

目录

🔥 差分核心价值

🌟 一维差分模板

1. 核心思想

2. 代码实现

3. 动态图示

📦 二维差分模板

1. 核心公式

2. 代码实现

3. 二维修改示意图

🚨 六大避坑指南

💡 复杂度对比

🌈 LeetCode实战


🔥 差分核心价值

暴力法的痛点

// 区间[l,r]增加val,时间复杂度O(n)  
for(int i=l; i<=r; i++) arr[i] += val; 

差分优势:将区间修改复杂度从 O(n) 降为 O(1),批量操作性能飙升!


🌟 一维差分模板

1. 核心思想
  • 差分数组diff[i] = arr[i] - arr[i-1]

  • 区间修改diff[l] += valdiff[r+1] -= val

  • 还原数组:前缀和计算

2. 代码实现
vector<int> arr = {3,1,4,2,5};  
int n = arr.size();  // 构建差分数组  
vector<int> diff(n+2, 0); // 多开空间防越界  
for(int i=1; i<=n; i++){  diff[i] = arr[i-1] - (i==1 ? 0 : arr[i-2]);  
}  // 区间[2,4](索引1~3)加10  
int l=2, r=4, val=10;  
diff[l] += val;  
diff[r+1] -= val;  // 还原数组  
vector<int> new_arr(n);  
new_arr[0] = diff[1];  
for(int i=1; i<n; i++){  new_arr[i] = new_arr[i-1] + diff[i+1];  
}  
// 结果:3,11,14,12,5  
3. 动态图示
原数组:  3   1   4   2   5  
差分数组:3  -2   3  -2   3  操作:区间[2-4]加10  
差分变化:  
diff[2] +=10 → -2+10=8  
diff[5] -=10 → 3-10=-7  新差分数组:3  8   3  -2  -7  
还原后数组:  
3 → 3+8=11 → 11+3=14 → 14-2=12 → 12-7=5  

📦 二维差分模板

1. 核心公式
给子矩阵(x1,y1)-(x2,y2)加val:  
diff[x1][y1] += val  
diff[x1][y2+1] -= val  
diff[x2+1][y1] -= val  
diff[x2+1][y2+1] += val  
2. 代码实现
vector<vector<int>> matrix = {{1,2,3}, {4,5,6}, {7,8,9}};  
int m = matrix.size(), n = matrix[0].size();  // 初始化二维差分  
vector<vector<int>> diff(m+2, vector<int>(n+2, 0));  
for(int i=1; i<=m; i++){  for(int j=1; j<=n; j++){  diff[i][j] += matrix[i-1][j-1];  diff[i][j+1] -= matrix[i-1][j-1];  }  
}  // 子矩阵(1,1)-(2,2)加5(原矩阵行0-1,列0-1)  
int x1=1, y1=1, x2=2, y2=2, val=5;  
diff[x1][y1] += val;  
diff[x1][y2+1] -= val;  
diff[x2+1][y1] -= val;  
diff[x2+1][y2+1] += val;  // 还原矩阵  
vector<vector<int>> res(m, vector<int>(n));  
for(int i=0; i<m; i++){  int row_sum = 0;  for(int j=0; j<n; j++){  row_sum += diff[i+1][j+1];  res[i][j] = row_sum;  }  
}  
// 结果:  
// 6  7  3  
// 9 10 6  
// 7  8 9  
3. 二维修改示意图
原矩阵:  
1 2 3  
4 5 6  
7 8 9  差分影响范围:  
+5          -5  ↓           ↓  
(1,1)     (1,3)  5  -5  -5  5  最终矩阵:  
(1+5)=6  (2+5)=7 3  
(4+5)=9 (5+5+5)=15 6  
7        8       9  

🚨 六大避坑指南

  1. 索引偏移陷阱:原数组从0开始,差分数组从1开始

  2. 越界防护:差分数组多开两格空间

  3. 还原顺序:二维需先计算行前缀和,再列方向累积

  4. 负数处理:差分数组允许负数存在

  5. 多操作叠加:支持连续多次修改后统一还原

  6. 初始值处理:原数组全0时差分数组也全0


💡 复杂度对比

操作暴力法差分法
区间修改O(n)O(1)
单次查询O(1)O(n)
初始化O(1)O(n)
适合场景查多改少改多查少

🌈 LeetCode实战

  1. 1109. 航班预订统计(一维差分模板题)

  2. 1094. 拼车(差分+上下车模型)

  3. 798. 得分最高的最小轮调(差分+区间覆盖)

  4. 2132. 用邮票贴满网格(二维差分经典)

http://www.dtcms.com/wzjs/570060.html

相关文章:

  • 上海建设协会网站网站接入变更
  • 你做网站群好朋友的作文wordpress可以建官网嘛
  • 网站建设商标属于哪个类别网站模版建站
  • seo手机端排名软件图片网站如何优化
  • 网站的常用技术有哪些wordpress安装语言选择
  • 天津市建设交易中心网站亚马逊官方网站的建设
  • 网站建设ftp软件有哪些wordpress上传pdf
  • 建设网站的费用明细大概有哪些百度地图驾车ar实景导航
  • 汕头网站制作多少钱wordpress课程购买
  • 中国哪家网站做仿古做的好阿里云域名注册口令
  • 浙江网站建设专家评价wordpress 分类页评论框
  • 网站建设论坛报告网络服务费税率是多少
  • 石家庄网络推广建站wordpress 主题开心版
  • 网站建设的技能有哪些内容那个网站做港货比较好
  • 中文设计网站网站制作公司品牌
  • 做二维码电子档相册 找什么网站wordpress 修改主页
  • 白酒网站建设浙江建设厅继续教育网站首页
  • 做网站能力介绍seo服务加盟
  • 网站建设投标ppt模板下载时尚网站设计
  • 巴中市住房和城乡建设局官方网站百度广告代理商
  • xampp网站后台百度调整导致网站排名下降
  • 烟台网站优化去哪网网站设计风格
  • php网站用到的知识做网站的备案
  • 广告设计培训班学校有哪些优化网站排名软件
  • 做团购网站需要多少钱wordpress移动主题设计
  • 铜陵市网站建设长沙企业名录黄页
  • 网站分享正能量上海的装修公司前十强有哪些
  • 外贸建站 智能营销手机网站模板 学校
  • 新沂徐州网站开发浙江今天的新消息
  • 如何开个公司网站企业网站图片上传