Leetcode 303.区域和检索 - 数组不可变
Time: 20190904
Type: Easy
题目描述
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。
示例:
给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
说明:
你可以假设数组不可变。
会多次调用 sumRange 方法。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/range-sum-query-immutable
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
使用部分和,将求和变成O(1)
操作。
注意部分和的写法,将第一位留作未加元素时的值。
presum[0] = 0
presum[1] = nums[0]
presum[i] = presum[i-1] + nums[i-1] # 特别注意这里是nums[i-1]# [i, j]包含边界
presum[j + 1] - presum[i]
代码
class NumArray:def __init__(self, nums: List[int]):self.nums = numsif len(nums) > 0:# 求出部分和self.presum = [0 for i in range(len(nums) + 1)]self.presum[0] = 0self.presum[1] = nums[0]for i in range(2, len(nums) + 1):self.presum[i] = self.presum[i-1] + nums[i - 1]print(self.presum)def sumRange(self, i: int, j: int) -> int:if len(self.nums) == 0:return 0return self.presum[j + 1] - self.presum[i]# Your NumArray object will be instantiated and called as such:
# obj = NumArray(nums)
# param_1 = obj.sumRange(i,j)
END.
Leetcode 303.区域和检索 - 数组不可变相关推荐
- leetcode - 303.区域和检索-数组不可变(动态规划)
303.区域和检索-数组不可变 ------------------------------------------ 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素 ...
- leetcode 303. 区域和检索 - 数组不可变(Java版)
题目 303. 区域和检索 - 数组不可变 题解 经典的累加和问题. 定义一个数组 sum,存放数组从 0 到 sum 的累加和. 欲求某区间的累加和,只需将对应位置 sum 相减即可. 时间复杂度O ...
- LeetCode 303. 区域和检索 - 数组不可变(前缀和)
1. 题目 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求 ...
- leetcode -- 303. 区域和检索 - 数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数 ...
- leetcode 303. 区域和检索 - 数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i.j 两点. 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums ...
- LeetCode 303. 区域和检索 - 数组不可变(动态规划)
题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和 ...
- 2022-3-3 Leetcode 303.区域和检索——数组不可变
第一反应是用前缀和 class NumArray {public:NumArray(vector<int>& nums) {if(!nums.empty()){res.push_b ...
- 303. 区域和检索 - 数组不可变
303. 区域和检索 - 数组不可变 Ideas 啥也没有,直接求和. Code Python from typing import Listclass NumArray:def __init__(s ...
- leetcode 303. Range Sum Query - Immutable | 303. 区域和检索 - 数组不可变(一维前缀和问题)
题目 https://leetcode.com/problems/range-sum-query-immutable/ 题解 标准的前缀和问题,简单题,不多说,直接上代码 import java.ut ...
最新文章
- TensorFlow实现多层感知机MINIST分类
- CUDA之单thread单block多thread单block多thread多block
- 2019年移动开发,我的求变之路
- 概率统计笔记: 卡方分布(介绍)
- 聊一聊ThreadLocal
- ASP.Net Telerik RadGrid动态生成表头
- Android之AIDL使用详解
- 中科院自动化所研究员课题组PPT《如何撰写毕业论文?》
- 智能会议系统(10)---WebRtc在H5视频聊天
- thinkphp3.2.3 找不到自定义模型_Orion HTC VIVE高性价比动作捕捉,虚拟直播 支持UE4.25 导入自定义模型...
- LUT查表法乘法器所犯下错误。。。。
- python基础 函数
- keras实现Segnet、FCN、U-Net系列分割网络
- Windows Driver Kits(WDK)中devcon.exe单独安装方法
- Modbus RTU 指令
- 【Spring】概述及IOC理论推导
- 一元、二元函数图像绘制
- ECMAScript - 字符串的部分使用方法
- 第 2 课:KNX智能控制系统的接口 BCU 模块
- 计算机工程制图箭头怎么画,cad中箭头画法
热门文章
- Pytorch---之scatter_ 理解轴的含义
- 相机标定(二)—— 投影变换相关基础概述
- back propagation反向传播(浅层神经网络分析示例)
- java开发搭建环境搭建_Java开发环境搭建
- tkinter的可视化拖拽工具_微信小游戏内测可视化工具!“人人都是小程序开发者”的时代到了...
- vba有下拉框的模糊查找_巧用数据验证制作模糊匹配的下拉列表
- 正态分布某一点的概率怎么算_笔记|复习金融计量中概率随笔1(样本推整体)
- Telnet服务器的系统要求,Telnet 服务器概述
- arm中断保护和恢复_ARM中断处理过程
- 前端切换视图_前端开发的10个软件工具,用过3个就是大神!