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

news2024/9/27 15:33:39

在这里插入图片描述

LeetCode刷题记录

文章目录

    • 📜题目描述
    • 💡解题思路
    • C代码


📜题目描述

给定一个整数数组 nums,处理以下类型的多个查询:
计算索引 leftright (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right
实现 NumArray 类:

  • NumArray(int[] nums) 使用数组 nums 初始化对象
  • int sumRange(int i, int j) 返回数组 nums 中索引 leftright 之间的元素的 总和 ,包含 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))

提示

  • 1 <= nums.length <= 10^4
  • -10^5 <= nums[i] <= 10^5
  • 0 <= i <= j < nums.length
  • 最多调用 10^4 次 sumRange 方法

💡解题思路

乍一看看不懂题目
其实就是让你计算一个数组从left到right之间的元素和
但是 题目要求设计一个类
也就是可以多次调用
所以简单的利用每一次循环来加和,时间复杂度很高
所以这一题就是一个经典的前缀和问题
在这里插入图片描述

计算[1,3]的元素和 就是计算[0,3]元素和 减去 [0,0]元素和
计算[2,5]元素和 就是计算[0,5]元素和 减去 [0,1]元素和
也就说[left,right]的元素和 等于[0,right] 减去 [0,left-1]的元素和
(left的前提是>= 1)

在这里插入图片描述

创建一个数组,每个位置 i 存放了 [0,i-1]的元素和
之所以创建一个 比元素组nums大1的空间,是因为 left >= 1
需要计算[0,left-1]的元素和
所以最后,只需要计算出sums数组中,right+1位置的元素 减去 left位置的元素即可!

C代码

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows nc命令下载使用与使用bash建立反弹shell

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是Windows nc命令下载使用与使用bash建立反弹shell。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强…

磨金石教育摄影技能干货分享|王汉冰摄影作品欣赏—《沙狐之眼》

一、偏爱新疆风光的摄影师王汉冰 王汉冰是新疆人&#xff0c;身为摄影师的他对新疆的大好风光有着强烈的偏爱。 因此经常驾车游历&#xff0c;期望寻找到好的风景&#xff0c;将它记录下来&#xff0c;让世人都能感受到大美新疆的壮丽。 在今年七月&#xff0c;王汉冰来到巴音郭…

C语言 内存函数 自定义类型 结构体 枚举 联合

perror #include <stdio.h> #include <errno.h> #include <string.h>//strerror //perror与上相关 更加方便直接打印错误信息 上边需要先将错误码转换为错误信息 再用printf打印 // int main() {//打开文件失败的时候&#xff0c;会返回NULLFILE* pf fo…

同为(TOWE)IPS系列工业插头插座、连接器的选型及特点

所谓工业插头插座、连接器&#xff0c;即欧洲标准插头插座&#xff0c;主要用于实现电信号的传输和控制以及电子与电气设备之间的电源连接。它可以通过连接器插头与插座之间的插合和分离&#xff0c;使电路产生接通和断开&#xff0c;适用于对安全、寿命和性能具有高要求的应用…

5款OCR文字识别软件推荐_分享好用的OCR(图片转文字)工具

5款OCR文字识别软件推荐 不知道大家是不是不知道OCR单词识别这个词。 小编认为&#xff0c;经常处理各种办公文件的朋友&#xff0c;对OCR文字识别这个词肯定有一定的了解&#xff0c;因为在处理办公文件的时候&#xff0c;很有可能会遇到对OCR文字识别的需求。 而当我们遇到O…

ubuntu16.04运行YOLOV5并部署

运行环境 环境&#xff1a;ubuntu 16.04 CUDA: 10.2 执行模型推理 1. 下载yoloV5 repo git clone https://github.com/ultralytics/yolov52. 用conda新建python环境 conda create -n yolo python3.83. 安装需求包 pip install -r requirements.txt 4. (requremets中包含…

@Configuration如何保证@Bean单例语义?

1. 前言 Spring允许通过Bean注解方法来向容器中注册Bean&#xff0c;如下所示&#xff1a; Bean public Object bean() {return new Object(); }默认情况下&#xff0c;bean应该是单例的&#xff0c;但是如果我们手动去调用Bean方法&#xff0c;bean会被实例化多次&#xff0…

iServer使用影像服务(二)——影像服务发布为wmts和wms服务的加载

前言 自从SuperMap iServer10.2.0版本开始新增影像服务模块&#xff0c;并支持大规模影像&#xff08;栅格&#xff09;数据快速发布为影像服务&#xff0c;之后推出的版本中都陆陆续续对影像服务模块扩充了新功能、增强了新特性&#xff1b;如在SuperMap iServer10.2.1版本中…

JAVA注解使用

JAVA注解使用简介概念说明自定义注解注解格式元注解注解本质属性注解生成文档案例生成的源代码生成Doc简单的自定义反射演示注解定义调用类定义测试通过注解实现配置类定义枚举类定义注解配置类使用注解测试自动生成数据库生成演示数据库注解定义使用注解创建数据表使用注解创建…

[Java安全]—fastjson漏洞利用

前言 文章会参考很多其他文章的内容&#xff0c;记个笔记。 FASTJSON fastjson 组件是 阿里巴巴开发的序列化与 反序列化组件。 fastjson 组件 在反序列化不可信数据时会导致远程代码执行。 POJO POJO是 Plain OrdinaryJava Object 的缩写 &#xff0c;但是它通指没有使用 …

ZGC 垃圾收集器详解(过程演示)

理论部分就不细讲了&#xff0c;具体可以看《 jvm 虚拟机原理》&#xff0c;下面直接画图来演示 ZGC 垃圾回收过程。 第一步 初始状态&#xff0c;视图由 mark0 切换为 Remapped &#xff0c;其中&#xff0c;大方块是 region&#xff0c;小方块是对象&#xff0c;小方块上面数…

Win11的几个实用技巧系列之不能玩植物大战僵尸、如何彻底删除360所有文件

目录 Win11不能玩植物大战僵尸怎么办?Win11玩不了植物大战僵尸的解决方法 Win11玩不了植物大战僵尸的解决方法 win11如何彻底删除360所有文件?win11彻底删除360所有文件方法分享 win11如何卸载360&#xff1a; Win11不能玩植物大战僵尸怎么办?Win11玩不了植物大战僵尸的解…

记一次H3CIE实验考试

一、前言 直接上图 IE机试在12月19号考的&#xff0c;为避免成为小羊人&#xff0c;没去北京/杭州这2个固定地点&#xff0c;就在本省的协办单位考的。但是&#xff0c;还是中招了&#xff0c;5个同学一起去考的&#xff0c;全阳了。 华三机试一共有三套图&#xff0c;ACD&am…

1343:【例4-2】牛的旅行

1343&#xff1a;【例4-2】牛的旅行 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 农民John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言&#xff0c;你能看到至少有两个牧区不连通。现在&#xff0c;John…

【特殊的一年,过去了】再见2022,你好2023

现在是2022年12月30日&#xff0c;提前的新年快乐&#xff01; 各位阳过了吗&#xff1f;&#xff08; tips:最近新学会的打招呼方式:) &#xff09; 我已经阳康啦&#xff0c;所以本文是带有奥密克戎抗体的&#xff0c;各位不用担心~ – 2022可算是快接近尾声啦&#xff01;…

虹科案例|Vuzix辅助和增强现实技术的全球领导者

当今企业的新现实 Vuzix 大多数科技业内人士都认为&#xff0c;未来将是免提时代。总有一天&#xff0c;智能手机、平板电脑、台式电脑和笔记本电脑将被更直观的设备所取代。 然而&#xff0c;对于未来免提的条件&#xff0c;各方意见并不一致。未来的免提设备是将数字信息覆盖…

IntelliJ IDEA 详细使用教程 – 主题,字体,类和方法注释设置

IDEA是Java开发者最喜爱的开发工具之一&#xff0c;高端大气&#xff0c;智能化&#xff0c;个性化&#xff0c;每个开发者都喜欢设置自己喜欢的主题&#xff0c;字体&#xff0c;打造一个属于自己的IDE&#xff0c;本次介绍在IDEA中&#xff0c;如何设置主题&#xff0c;字体等…

聊聊AQS

Java中 AQS 是 AbstractQueuedSynchronizer 类&#xff0c;AQS 依赖 FIFO 队列来提供一个框架&#xff0c;这个框架用于实现锁以及锁相关的同步器&#xff0c;比如信号量、事件等。 在 AQS 中&#xff0c;主要有两部分功能&#xff0c;一部分是操作 state 变量&#xff0c;第二…

调用html5播放器时,出现播放器按钮太小的问题

用手机浏览器打开视频&#xff0c;有时会出现播放器按钮太小的情况&#xff0c;此时只需在<head>中加入下面这段viewport代码即可解决&#xff1a; <meta name"viewport" content"widthdevice-width, initial-scale1, maximum-scale1,minimum-scale1…