刷题专栏(二十一):区域和检索 - 数组不可变

简介: 刷题专栏(二十一):区域和检索 - 数组不可变

前言

刷题专栏到目前已经是第二十一篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天这道题,还是涉及数组相关知识,《区域和检索 - 数组不可变》。

不过此题和其他题不太一样,此题是要单独实现一个类,并且要通过调用这个类的方法来实现某些效果。

这种类型的题大多需要在构造函数中做一些基础的初始化处理。

至于这道题具体的一些操作是什么,就让我们一起来看一下吧。

image.png

算法题:区域和检索 - 数组不可变

今天的这道题目看似描述的文字很多,其实并不难理解。

只需要抓住一个重要的点,就是如何在类实例化时将部分数据初始化。

解决了这个问题,也就很好做出来了。

下面我们就可以来看一下相关代码的编写了。

代码展示

此次运行的代码如下,就是通过构造函数来初始化内部元素,然后通过其他方法来取出相应的值。

class NumArray {
    int[] sums;
    public NumArray(int[] nums) {
        int n = nums.length;
        sums = new int[n + 1];
        for (int i = 0; i < n; i++) {
            sums[i + 1] = sums[i] + nums[i];
        }
    }
    public int sumRange(int i, int j) {
        return sums[j + 1] - sums[i];
    }
}
/**
 * Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(left,right);
 */

代码执行结果

本次处理结果还是比较可以的,虽然内存消耗实为严重。就交给大家自己去完善一下了。

image.png

总结

这道题的不同之处在于给出了一个完整的类让大家去自己实现,那么为什么要给一个完整的类呢,必然就是要通过初始化来解决一下问题。

下回碰到这种题也就很容易解出来了。

目录
相关文章
|
5月前
|
算法 前端开发 程序员
前端算法专栏-数组-75.颜色分类
前端算法专栏-数组-75.颜色分类
前端算法专栏-数组-75.颜色分类
|
5月前
|
算法 Java
算法编程(十五):位1的个数
算法编程(十五):位1的个数
30 0
|
5月前
|
算法 Java
刷题专栏(二十八):找到所有数组中消失的数字
刷题专栏(二十八):找到所有数组中消失的数字
102 4
|
5月前
|
算法 Java
算法编程(十二):多数元素
算法编程(十二):多数元素
21 0
|
7月前
|
算法
带你读《图解算法小抄》十五、搜索(1)
带你读《图解算法小抄》十五、搜索(1)
带你读《图解算法小抄》十五、搜索(1)
|
10月前
|
测试技术 索引 Python
【刷题日记】307. 区域和检索 - 数组可修改
本次刷题日记的第 24 篇,力扣题为:307. 区域和检索 - 数组可修改 ,中等
|
11月前
数组学习记录
数组学习记录
|
12月前
数据结构一个小白的练级之路【链表的分割】题目参考
数据结构一个小白的练级之路【链表的分割】题目参考
|
算法 索引
【切图仔的算法修炼之旅】LeetCode1991:找到数组中的中间位置
【切图仔的算法修炼之旅】LeetCode1991:找到数组中的中间位置
88 0
|
算法
【漫画算法学习笔记】第二章——2.1数组
本篇博客总结了《漫画算法》第二章的知识点,并将数组的扩容封装成了工具类
78 0
【漫画算法学习笔记】第二章——2.1数组