当前位置:网站首页>leetcode-303:区域和检索 - 数组不可变
leetcode-303:区域和检索 - 数组不可变
2022-07-07 08:18:00 【菊头蝙蝠】
题目
给定一个整数数组 nums,处理以下类型的多个查询:
- 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right
实现 NumArray 类:
- NumArray(int[] nums) 使用数组 nums 初始化对象
- int sumRange(int i, int j) 返回数组 nums 中索引 left 和 right 之间的元素的 总和 ,包含 left 和 right 两点(也就是 nums[left] + nums[left + 1] + … + nums[right] )
示例 1:
输入:
["NumArray", "sumRange", "sumRange", "sumRange"]
[[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, 5]]
输出:
[null, 1, -1, -3]
解释:
NumArray numArray = new NumArray([-2, 0, 3, -5, 2, -1]);
numArray.sumRange(0, 2); // return 1 ((-2) + 0 + 3)
numArray.sumRange(2, 5); // return -1 (3 + (-5) + 2 + (-1))
numArray.sumRange(0, 5); // return -3 ((-2) + 0 + 3 + (-5) + 2 + (-1))
解题
方法一:前缀和
s[i]=nums[0]+nums[1]+....+nums[i-1];
如果要求 nums[2]+nums[3]+nums[4]
只需要
求s[4]-s[1]
即可。
因此可以在初始化的时候,就去计算出每个s[i]
的值
class NumArray {
public:
vector<int> sums;
NumArray(vector<int>& nums) {
int n=nums.size();
sums.resize(n+1);
for(int i=1;i<=nums.size();i++){
sums[i]=sums[i-1]+nums[i-1];
}
}
int sumRange(int left, int right) {
return sums[right+1]-sums[left];
}
};
边栏推荐
- 搭建物联网硬件通信技术几种方案
- Postman interface test IV
- 对存储过程进行加密和解密(SQL 2008/SQL 2012)
- Postman interface test VII
- Hdu-2196 tree DP learning notes
- JMeter loop controller and CSV data file settings are used together
- How to cancel automatic saving of changes in sqlyog database
- LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
- 2022.7.4DAY596
- P2788 数学1(math1)- 加减算式
猜你喜欢
STM32 ADC和DMA
0x0fa23729 (vcruntime140d.dll) (in classes and objects - encapsulation.Exe) exception thrown (resolved)
Embedded background - chip
深入分析ERC-4907协议的主要内容,思考此协议对NFT市场流动性意义!
SQLyog数据库怎么取消自动保存更改
ORM -- database addition, deletion, modification and query operation logic
PDF文档签名指南
【acwing】789. Range of numbers (binary basis)
STM32 ADC and DMA
【acwing】786. 第k个数
随机推荐
对word2vec的一些浅层理解
A small problem of bit field and symbol expansion
IO模型复习
Factorial implementation of large integer classes
The request object parses the request body and request header parameters
Several schemes of building hardware communication technology of Internet of things
【二开】【JeecgBoot】修改分页参数
.NET配置系统
[ORM framework]
基于HPC场景的集群任务调度系统LSF/SGE/Slurm/PBS
P2788 数学1(math1)- 加减算式
Multisim--软件相关使用技巧
【华为机试真题详解】高矮个子排队
Embedded background - chip
2022.7.4DAY596
555电路详解
大整数类实现阶乘
电表远程抄表拉合闸操作命令指令
ISP、IAP、ICP、JTAG、SWD的编程特点
嵌入式工程师如何提高工作效率