博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-307 Range Sum Query - Mutable
阅读量:5141 次
发布时间:2019-06-13

本文共 982 字,大约阅读时间需要 3 分钟。

题目描述

Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.

The update(i, val) function modifies nums by updating the element at index i to val.

 

题目大意

实现两个操作:更新数组,求数组范围内数字之和。

 

示例

E1

Given nums = [1, 3, 5]sumRange(0, 2) -> 9update(1, 2)sumRange(0, 2) -> 8

 

解题思路

保存一个vector数组,更新时以O(1)时间复杂度更新,求和时以O(N)时间复杂度遍历数组求和。

 

复杂度分析

时间复杂度:O(N)

空间复杂度:O(N)

 

代码

class NumArray {public:    NumArray(vector
& nums) { for(int n : nums) num.push_back(n); } void update(int i, int val) { num[i] = val; } int sumRange(int i, int j) { int sum = 0; for(int k = i; k <= j; ++k) sum += num[k]; return sum; } private: vector
num;};/** * Your NumArray object will be instantiated and called as such: * NumArray* obj = new NumArray(nums); * obj->update(i,val); * int param_2 = obj->sumRange(i,j); */

 

转载于:https://www.cnblogs.com/heyn1/p/11163869.html

你可能感兴趣的文章
01: socket模块
查看>>
Border-radius
查看>>
mysql触发器
查看>>
Redis学习笔记(1)Redis安装和启动
查看>>
淌淌淌
查看>>
MySQL-定时任务
查看>>
web页面实现指定区域打印功能
查看>>
使用PHP拆分中文字符串的方法(收藏) 小节
查看>>
android系统权限的管理
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
因Window服务器自动更新并重启导致WebSphere服务停止服务故障一例
查看>>
如何开启safari的调试
查看>>
js深拷贝和浅拷贝
查看>>
node.js 基础学习笔记1
查看>>
如何在linux系统中设置静态ip地址
查看>>
二分查找法,折半查找原理
查看>>
DP简单问题联系--最长递增子序列+最长公共子序列等
查看>>
2017-4-18 Zabbix server的安装以及ansible批量部署zabbix agent的工作笔记
查看>>
1066. Root of AVL Tree (25)
查看>>
maven的pom.xml用<exclusion>解决版本问题
查看>>