LeetCode-303-区域和检索 - 数组不可变
区域和检索 - 数组不可变
题目描述:给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。
实现 NumArray 类:
- NumArray(int[] nums) 使用数组 nums 初始化对象
- int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], ... , nums[j]))
示例说明请见LeetCode官网。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/range-sum-query-immutable/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解法一:累加
首先,给
NumArray
声明一个int数组型成员变量nums,在构造方法中初始化nums。sumRange
这个方法的实现就是数组的left~right
位置的元素值相加,然后返回。
package com.kaesar.leetcode;
public class LeetCode_303 {
public static void main(String[] args) {
// 测试用例
NumArray numArray = new NumArray(new int[]{-2, 0, 3, -5, 2, -1});
System.out.println(numArray.sumRange(0, 2)); // return 1 ((-2) + 0 + 3)
System.out.println(numArray.sumRange(2, 5)); // return -1 (3 + (-5) + 2 + (-1))
System.out.println(numArray.sumRange(0, 5)); // return -3 ((-2) + 0 + 3 + (-5) + 2 + (-1))
}
}
class NumArray {
private int[] nums;
public NumArray(int[] nums) {
this.nums = nums;
}
public int sumRange(int left, int right) {
int result = 0;
for (int i = left; i <= right; i++) {
result += nums[i];
}
return result;
}
【每日寄语】 洗去夜的疲惫,刷走昨日劳累,在晨曦中抖擞精神,在阳光下放飞心情,把未知的事面对,勇敢无畏;让快乐的心相随,轻松明媚。
分类:
LeetCode-个人题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了