前缀和 专题一(入门篇)
303. 区域和检索 - 数组不可变
思路
- 初始化的时候计算
sum[i] = sum[i-1] + nums[i];
sum[r] = a[1] + a[2] + a[3] + a[l-1] + a[l] + a[l + 1] ...... a[r];
sum[l - 1] = a[1] + a[2] + a[3] + a[l - 1];
sum[r] - sum[l - 1] = a[l] + a[l + 1] + ......+ a[r];
- 所以对于每次查询计算从下标 l 到 r 的和,只需执行 sum[r] - sum[l - 1] ,时间复杂度为O(1)。
- 注意下标 l 如果是 0, 即计算从 0 到 r 的和,那相当于直接返回 sum[r] 。
代码
class NumArray {public:NumArray(vector<int>& nums) {this->sum.push_back(nums[0]);for(int i = 1; i < nums.size(); i++){this->sum.push_back(nums[i] + sum[i-1]);}}int sumRange(int left, int right) {if(left == 0) return this->sum[right];return (this->sum[right] - this->sum[left-1]);}
private:vector<int> sum;
};/*** Your NumArray object will be instantiated and called as such:* NumArray* obj = new NumArray(nums);* int param_1 = obj->sumRange(left,right);*/
前缀和 专题一(入门篇)相关推荐
- python 柱状图 间距_专题第18篇:Python 绘图入门
我的施工之路 1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编程风格专题7函数使用8面向对象编程(上篇)9面向对象编程(下篇)10十大数据结构11包和模块使用总结12Python正则专 ...
- Hololens开发入门篇-郑洪智-专题视频课程
Hololens开发入门篇-572人已学习 课程介绍 本课程使用Hololens模拟器,基于Unity2017.2及Visual Studio 2017开发 课程收益 学会Ho ...
- 跟着王进老师学开发之Python篇第一季:基础入门篇-王进-专题视频课程
跟着王进老师学开发之Python篇第一季:基础入门篇-2859人已学习 课程介绍 本季课程首先对Python简要介绍,然后演示如何搭建Python的开发环境,以及如何在IDE中调试Py ...
- python语言自学教程-3D图示Python标准自学教程入门篇
内容简介: Python入门篇教程从最基础的计算机发展史.Python的来源与发展历史开始讲起: 依次讲解python变量与表达式.数据类型.运算符.流程控制语句等,末尾通过课堂练习.课后作业以及微型 ...
- JavaScript从入门到精通之入门篇(二)函数和数组
入门篇大纲 第二部分 函数与数组 1.函数 函数的定义 普通函数 function 函数名 (表达式1-) { 代码块 } js是解释性语言,在当前script标签代码执行的开始阶段,就会将普通函数放 ...
- python自学教程-3D图示Python标准自学教程入门篇
内容简介: Python入门篇教程从最基础的计算机发展史.Python的来源与发展历史开始讲起: 依次讲解python变量与表达式.数据类型.运算符.流程控制语句等,末尾通过课堂练习.课后作业以及微型 ...
- JSON数据结构(A、快速入门篇)(Yanlz+Data+JsonArray+JsonObject+JsonValue+JsonMapper.ToJson+JsonMapper.ToObject+)
<JSON数据结构> 版本 作者 参与者 完成日期 备注 Data_JSON_V01_1.0 严立钻 2018.08.24 ++++一个好用的JSON在线编辑:http://www.kjs ...
- 【滤波专题-第3篇】IIR无限冲激响应和FIR有限冲激响应数字滤波器有什么区别?
该文章在之前编写并发布过,现在重新编辑一下并纳入到滤波专题中. 之前已经讲过FIR和IIR的概念: Mr.看海:[滤波专题-第1篇]数字滤波器15分钟入门!--这可能是最简单的FIR有限冲激响应滤波讲 ...
- 读书笔记:《谁说菜鸟不会数据分析-入门篇》第1-4章
读书笔记:<谁说菜鸟不会数据分析-入门篇> 第一章:数据分析是神马 数据分析分类: 1.数据分析分类: 描述性数据分析:常见方法:对比分析法.平均分析法.交叉分析法 探索性数据分析–发现数 ...
- 产品读书《谁说菜鸟不会数据分析(入门篇)》
PPT查看1 PPT查看2 思维导图下载 ppt下载 什么是数据分析?怎么样才是数据分析的思维?数据分析的流程有哪些?常用的数据方法又有哪些?工具呢?可以学习的网站有哪些?我觉得<谁说 ...
最新文章
- 常见的计算机视觉任务综述
- 数组专题——找重复数字 利用下标
- python 报错 cannot import name ‘byte_string‘ from ‘Crypto.Util.py3compat‘ 解决方法
- Fabric 架构和概念
- Destination Host Unreachable问题记录
- [INS-20802] Oracle Net Configuration Assistant failed
- Android 驱动(10)----设备树(二)linux内核顶层am335x-evm.dts
- 如何删除C++容器中的值
- Windows Phone7成为诺基亚核心目标
- linux中crontab的用法
- ZZULIOJ1049
- 利用python制作词云图
- IntelliJ IDEA 自定义注释作者名字
- (超详细) eclispe如何连接SQL Server2019(通过JDBC驱动包连接)
- 在AI里怎么把一行字拆成单个的字,并且可编辑
- 浅谈一下Program Files和Program Files(x86)
- 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome会被hao123劫持怎么办?解决方案...
- win11提示找不到gpedit.msc命令
- 利用Windows的IFELanguage接口,取得拼音笔划数其实很简单!
- 微信运营必备!专业的微信粉丝和社群管理工具!功能强大好用,而且免费!