描述:给定一个整数数组  nums,求出数组从索引 到 j  (i ≤ j) 范围内元素的总和,包含 i,  j 两点。

说明:可以假设数组不可变;会多次调用区间和sumRange 方法

示例:

给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3

方法1:暴力求解(一般都会超过时间限制)

每次调用区间求和方法的时候,都循环遍历索引将每个元素相加

private int[] data;public NumArray(int[] nums) {data = nums;
}public int sumRange(int i, int j) {int sum = 0;for (int k = i; k <= j; k++) {sum += data[k];}return sum;
}

方法2:缓存

如果我们知晓了每个位置的数值和,那么求区间和就简单的转换为两者之差,sumrange(i,j)=sum[j+1]−sum[i],这里虚拟了sum数组第一个元素值为0。。

private int[] sum;public NumArray(int[] nums) {sum = new int[nums.length + 1];for (int i = 0; i < nums.length; i++) {sum[i + 1] = sum[i] + nums[i];}
}public int sumRange(int i, int j) {return sum[j + 1] - sum[i];
}

Leetcode-区域和检索-数组不可变相关推荐

  1. leetcode - 303.区域和检索-数组不可变(动态规划)

    303.区域和检索-数组不可变 ------------------------------------------ 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素 ...

  2. leetcode 303. 区域和检索 - 数组不可变(Java版)

    题目 303. 区域和检索 - 数组不可变 题解 经典的累加和问题. 定义一个数组 sum,存放数组从 0 到 sum 的累加和. 欲求某区间的累加和,只需将对应位置 sum 相减即可. 时间复杂度O ...

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

    303. 区域和检索 - 数组不可变 Ideas 啥也没有,直接求和. Code Python from typing import Listclass NumArray:def __init__(s ...

  4. LeetCode 303. 区域和检索 - 数组不可变(前缀和)

    1. 题目 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求 ...

  5. Leetcode 303.区域和检索 - 数组不可变

    Time: 20190904 Type: Easy 题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums ...

  6. leetcode -- 303. 区域和检索 - 数组不可变

    给定一个整数数组  nums,求出数组从索引 i 到 j  (i ≤ j) 范围内元素的总和,包含 i,  j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数 ...

  7. LeetCode(303)——区域和检索 - 数组不可变(JavaScript)

    给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例1: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 ...

  8. LeetCode简单题之区域和检索 - 数组不可变

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

  9. leetcode 303. Range Sum Query - Immutable | 303. 区域和检索 - 数组不可变(一维前缀和问题)

    题目 https://leetcode.com/problems/range-sum-query-immutable/ 题解 标准的前缀和问题,简单题,不多说,直接上代码 import java.ut ...

  10. leetcode 303. 区域和检索 - 数组不可变

    给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i.j 两点. 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums ...

最新文章

  1. 【如何快速的开发一个完整的iOS直播app】(美颜篇)
  2. Linux下同步模式、异步模式、阻塞调用、非阻塞调用总结
  3. 如何进行机器学习框架选择
  4. Flex Timer 定时器
  5. Asp.Net获取客户端信息-学习中
  6. Struts2 简介
  7. 服务器设备日常维护与管理论文,浅谈设备管理与维护论文
  8. C# —— IEnumerator和foreach
  9. 遭遇 XSS 跨站脚本攻击?稳住,这些方法可保你渡劫 | 附代码、图解
  10. ai人工智能对话了_产品制造商如何缓解对话式AI中的偏见
  11. python:查看函数方法的具体信息、参数等
  12. java 代码行数统计工具_代码行数统计工具
  13. Java 常见异常类
  14. 扫盲篇:数字签名、数字证书、域名劫持、域名欺骗
  15. VS2017编译libcef 2623_20181107完成
  16. css中pt单位,css中字体单位px,pt,em,百分比之间的区别和用法
  17. 110部值得一看的电影
  18. Eclipse与JDK多版本兼容性设置
  19. docker下载及vulhub靶场
  20. paypal html5 支付,uniapp 对接 paypal支付 (h5,app端)

热门文章

  1. 六大举措深耕光通信市场
  2. Linux sed命令实例详解
  3. EasyUI基础入门之Droppable(可投掷)
  4. c#自定义控件做漂亮的列表
  5. 《虚拟化与云计算》读书感(九)服务器虚拟化的其他核心技术
  6. FCKeditor在Asp.Net中的配置
  7. 9102 BITRUN Hackathon is COMING!
  8. Express+Socket.IO 实现简易聊天室
  9. LVS NAT 模型配置实例
  10. [20161128]关于Little Enddian.txt