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

电脑做服务器发布网站吗营销网站建设价格

电脑做服务器发布网站吗,营销网站建设价格,wordpress精美主题,焦作网站制作公司二维前缀和 根据某个块块 的 左上角坐标,和右下角坐标 求出 块块的累加和。 304. 二维区域和检索 - 矩阵不可变 /*** param {number[][]} matrix*/ var NumMatrix function(matrix) {let row matrix.length;let col matrix[0].length;// 初始化一个二维数组&am…

二维前缀和

根据某个块块 的 左上角坐标,和右下角坐标 求出 块块的累加和。

在这里插入图片描述

304. 二维区域和检索 - 矩阵不可变

/*** @param {number[][]} matrix*/
var NumMatrix = function(matrix) {let row = matrix.length;let col = matrix[0].length;// 初始化一个二维数组,用来存储每个位置的累加和。let sum = new Array(row+1).fill(0);for(let i = 0; i < sum.length; i++){sum[i] = new Array(col+1).fill(0);}for(let i = 1; i <= row; i++){for(let j = 1; j <= col; j++){sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + matrix[i-1][j-1];}}this.sum = sum;
};/** * @param {number} row1 * @param {number} col1 * @param {number} row2 * @param {number} col2* @return {number}*/
NumMatrix.prototype.sumRegion = function(row1, col1, row2, col2) {return this.sum[row2+1][col2+1] - this.sum[row1][col2+1] - this.sum[row2+1][col1] + this.sum[row1][col1];
};/*** Your NumMatrix object will be instantiated and called as such:* var obj = new NumMatrix(matrix)* var param_1 = obj.sumRegion(row1,col1,row2,col2)*/

例题:

给定一个M×N的矩阵,矩阵上每个数字代表一个区域内有多少个传感器,给定一个CNT×CNT大小的窗口,统计每个窗口内传感器的总数

需要统计在M×N矩阵中,窗口内传感器总数最大的所有窗口,并统计所有的窗口中总共有多少种不同的数字。

  1. 遍历一次二维数组,记录二维数组的前缀和。记录为preSum
  2. 遍历preSum,从 i :cnt → len,j:cnt → len ,计算每个小窗口的区间和。记录为cntSum
  3. 最后遍历cntSum数组,找到最大的窗口,并且用set记录窗口的数字总量。
const SensorsNumCategory = (sensors,cnt) => {// 构造二维前缀和数组let preSumArr = new Array(sensors.length+1);let len = sensors[0].length;for(let i = 0; i < sensors.length+1; i++){preSumArr[i] = new Array(len+1).fill(0);}for(let i = 1; i < preSumArr.length; i++){for(let j = 1;j < preSumArr[i].length;j++){preSumArr[i][j] = preSumArr[i-1][j] + preSumArr[i][j-1] - preSumArr[i-1][j-1] + sensors[i-1][j-1];}}// 遍历 前缀和二维数组,维护出现窗口最大和的块块的右下角坐标let max = 0;let map = new Map();for(let i = cnt; i < preSumArr.length; i++){for(let j = cnt; j < preSumArr[i].length; j++){let sum = preSumArr[i][j]-preSumArr[i-cnt][j]-preSumArr[i][j-cnt]+preSumArr[i-cnt][j-cnt];if(sum >= max){max = sum;if(!map.has(max)){map.set(max,[])}map.get(max).push([i,j])}}}let arr = map.get(max);let res = [];for(let i = 0; i < arr.length; i++){[x,y] = arr[i];res.push(...getElem([x-cnt,y-cnt],cnt,sensors));}// 对数组元素进行去重return Array.from(new Set(res));
}// 根据右下角坐标获取块块里的所有元素
const getElem = (arr,cnt,sensors) => {let res = [];for(let i = arr[0]; i < arr[0]+cnt; i++){for(let j = arr[1]; j < arr[1]+cnt; j++){res.push(sensors[i][j])}}return res;
}
console.log(SensorsNumCategory([[1,3,4], [3,2,5],[1,6,1]],2))
http://www.mnyf.cn/news/45790.html

相关文章:

  • 网络广告推广平台seo编辑培训
  • 中国科技成果英文谷歌优化
  • 文书写作网站百度竞价广告收费标准
  • 微网站建设公司网络推广具体内容
  • 深圳企业注销流程优化推广方案
  • 桂林 网站建设网站推广软件ky99
  • wordpress对比discuz厦门关键词优化seo
  • 免费b2b网站要怎么做最佳的资源搜索引擎
  • 武汉580做网站谷歌浏览器手机版下载
  • 做外贸网站好还是内贸网站好媒体发稿平台
  • 宝应123网站建设网优化大师的功能有哪些
  • 医疗机械网站怎么做百度指数排名
  • 有移动端网站 怎么做app怎么做公司网站
  • 加盟招商推广网站怎么做产品推广和宣传
  • 网站建设案例 优帮云做网站怎么赚钱
  • 网站建设公司怎么办纯注册app拉新平台
  • 网站做权重有用吗成都百度推广排名优化
  • 做网站一定要买主机吗网站建设营销推广
  • php网站建设流程百度手机助手app下载官网
  • 最便宜的网站建设试分析网站推广和优化的原因
  • 怎样做网站快手刷粉娄底地seo
  • 绥化市建设局网站软文例文 经典软文范例
  • wordpress文章 插件首页关键词优化价格
  • 西安专业做网站的公司有哪些网络营销的三大基础
  • 婚礼策划网站设计百度图片搜索引擎
  • 门户网站如何做谷歌seo上海哪家优化公司好
  • 网站开发 0755百度推广渠道
  • asp.net窗体网站盘古百晋广告营销是干嘛
  • 设计师可以做兼职的网站有哪些重庆seo扣费
  • 新闻网站伪原创同义词杭州全网推广