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

建设网络道德教育网站不包括/免费网站推广群发软件

建设网络道德教育网站不包括,免费网站推广群发软件,建设网站网站,wordpress quiz303. 区域和检索 - 数组不可变 本文主要是记录,方便日后遇到相同题的归纳。(主要思路均来自下面两篇参考文章的提示) 这两题,主要考察的是前缀和,也是包含了动态规划思想。 题目要求的是:求数组[i, j]范…

303. 区域和检索 - 数组不可变

本文主要是记录,方便日后遇到相同题的归纳。(主要思路均来自下面两篇参考文章的提示)

这两题,主要考察的是前缀和,也是包含了动态规划思想。
在这里插入图片描述

题目要求的是:求数组[i, j]范围内的值,且会不断的调用求区域和方法,所以每次调用就计算[i, j]的和,时间复杂度太大

所以,能想到的是,提前维护一个数组,该数组能够计算出[i,j]的区域和,但是由于给出的i、j范围不定,所以不可能提前想好所有可能

所以,有没有间接的计算区域和的方法,使之满足O(1)的时间复杂度

观察发现**[i, j] = [0 , j] - [0, i - 1]**,所以我们可以维护一个数组,该数组计算[0, k]的和,那么求区域和只需要带入该公式即可:

class NumArray {int len;        // 求数组的长度int[] arr;int[] preSum;		// 辅助数组,长度 + 1(0之前的前缀和也需要计算,统一边界条件)public NumArray(int[] nums) {				// 初始化len = nums.length;arr = nums;preSum = new int[len + 1];  // 求前缀和的数组preSum[0] = 0;for(int i = 0; i < len; i++){preSum[i + 1] = preSum[i] + arr[i];}}public int sumRange(int i, int j) {return preSum[j + 1] - preSum[i];}
}

——本质就是能够想到前缀和

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

在这里插入图片描述
和上面的一样,只不过将一维变成二维的。

也还是需要求前缀和,那么此时的前缀和是指从[0,0]~[i, j]范围内的所有数字之和,而前缀和的计算公式变成了:

S[i, j] = S[i, j - 1] + S[i - 1, j] - S[i - 1, j - 1] + [i, j]的值(纸上画图即可)

而[i, j - 1]、[i - 1, j]、[i - 1, j - 1]都是之前计算好的,可以直接使用,注意为了处理边界情况,所以辅助数组helper 行和列各+1。

——那么在初始化的时候,就可以直接计算出前缀和的值。

——其实,这个也是一个递推方程式,所以本质上是动态规划

那边区域和该如何求呢?

S[i1, j1, i2, j2] = S[i2, j2] - S[i2, j2 - 1] - S[i2 - 1, j2] + S[i1 - 1, j1 - 1]

class NumMatrix {int[][] matrix;int[][] help;public NumMatrix(int[][] matrix) {if(matrix.length != 0){			// 传入空数组,就不管直接放弃初始化this.matrix = matrix;help = new int[matrix.length + 1][matrix[0].length + 1];for(int i = 1; i <= matrix.length; i++){for(int j = 1; j <= matrix[0].length; j++){help[i][j] = help[i - 1][j] + help[i][j - 1] - help[i - 1][j - 1] + matrix[i - 1][j - 1];}}}}public int sumRegion(int row1, int col1, int row2, int col2) {return help[row2 + 1][col2 + 1] - help[row2 + 1][col1] - help[row1][col2 + 1] + help[row1][col1];}
}/*** Your NumMatrix object will be instantiated and called as such:* NumMatrix obj = new NumMatrix(matrix);* int param_1 = obj.sumRegion(row1,col1,row2,col2);*/

参考:

  1. https://leetcode-cn.com/problems/range-sum-query-immutable/solution/presum-qian-zhui-he-xiang-xi-jiang-jie-b-nh23/
  2. https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solution/ru-he-qiu-er-wei-de-qian-zhui-he-yi-ji-y-6c21/
http://www.jmfq.cn/news/5059549.html

相关文章:

  • 请人代做谷歌外贸网站/百度网址大全电脑版旧版本
  • 上海网站开发定制/深圳关键词优化
  • 做nba直播网站好/汕头网站建设方案优化
  • 机械网站模板/品牌策划公司介绍
  • 推荐一些能打开的网站/新闻稿发布平台
  • 做商城网站要什么手续费/百度小说app下载
  • 营销的网站/软文发布网站
  • 手机网站域名怎么解析/网络公司网页设计
  • scala做网站/广州谷歌seo公司
  • 泰安建设银行网站/如何在百度发布文章
  • 九江县建设规划局网站/扬州seo推广
  • 资讯网站手机网站模板/深圳网站优化
  • 天津商城网站建设/南昌seo搜索优化
  • php与 wordpress/郑州seo课程
  • wordpress系列文章实现/李江seo
  • 网站建设图片怎么动/推销网站
  • net网站开发找那家/网站seo关键词排名推广
  • 求推荐做ppt的网站/微博上如何做网站推广
  • 静态网站开发课程网/朔州seo
  • 个人网站的制作实验报告/湘潭营销型网站建设
  • 网站制作 南通/2024年3月新冠高峰
  • 龙岗网站建设推广报价/免费网站优化排名
  • 建设银行网站入口/上海app开发公司
  • 什么网站可以接单做设计方案/域名大全
  • 公司网站简介怎么做/全国疫情又严重了
  • 去越南做网站/百度网址大全免费下载
  • 青岛网站建设优化质量可靠/站外推广
  • nas服务器 做网站/市场营销案例100例
  • wordpress+评论+验证码/seo策划
  • 动态网站 编辑软件/企业网站seo贵不贵