当前位置: 首页 > article >正文

【LC】303. 区域和检索 - 数组不可变

题目描述:

给定一个整数数组  nums,处理以下类型的多个查询:

  1. 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 ,其中 left <= right

实现 NumArray 类:

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

题解:

class NumArray {

    private int[] s;

    public NumArray(int[] nums) {
        int n = nums.length;
        s = new int[n + 1];
        for (int i = 0; i < n; i++) {
            s[i + 1] = s[i] + nums[i];
        }
    }
    
    public int sumRange(int left, int right) {
        return s[right + 1] - s[left];
    }
}


http://www.kler.cn/a/415730.html

相关文章:

  • Vue使用Mockjs插件实现模拟数据
  • Redis使用场景-缓存-缓存穿透
  • 3.10 内核 BUG_ON() at xfs_vm_writepage() -> page_buffers()
  • 【Linux】文件系统与设备文件
  • 在CodeIgniter中创建库
  • VSCode 使用教程:项目使用配置、使用哪些插件、Live Server使用问题及解决方案(你想要的,都在这里)
  • 百度实习内推
  • Oracle SCN与时间戳的映射关系
  • 恶补英语初级第12天,《描述进行中的动作》
  • Linux系统之who命令的基本使用
  • 递归、搜索与回溯算法 - 3 ( floodfill 记忆化搜素 9000 字详解 )
  • 服务器挖矿
  • 【k8s深入理解之 Scheme 补充-3】理解 k8s 各个库(apimachinery、api、kubernetes)的关系
  • STL基本算法之copy与copy_backward
  • Servlet细节
  • C 语言静态库与动态库的生成和使用
  • maven,java相关调试等
  • 基于社群生态需求构建小程序 AI 智能名片与 S2B2C 商城系统融合模式的探索与实践
  • Linux -初识 与基础指令1
  • CSS怪异,弹性盒子模型与浏览器内核