Leetcode-区域和检索-数组不可变
描述:给定一个整数数组 nums,求出数组从索引 i 到 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-区域和检索-数组不可变相关推荐
- leetcode - 303.区域和检索-数组不可变(动态规划)
303.区域和检索-数组不可变 ------------------------------------------ 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素 ...
- leetcode 303. 区域和检索 - 数组不可变(Java版)
题目 303. 区域和检索 - 数组不可变 题解 经典的累加和问题. 定义一个数组 sum,存放数组从 0 到 sum 的累加和. 欲求某区间的累加和,只需将对应位置 sum 相减即可. 时间复杂度O ...
- 303. 区域和检索 - 数组不可变
303. 区域和检索 - 数组不可变 Ideas 啥也没有,直接求和. Code Python from typing import Listclass NumArray:def __init__(s ...
- LeetCode 303. 区域和检索 - 数组不可变(前缀和)
1. 题目 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求 ...
- Leetcode 303.区域和检索 - 数组不可变
Time: 20190904 Type: Easy 题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums ...
- leetcode -- 303. 区域和检索 - 数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数 ...
- LeetCode(303)——区域和检索 - 数组不可变(JavaScript)
给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例1: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 ...
- LeetCode简单题之区域和检索 - 数组不可变
题目 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right ...
- leetcode 303. Range Sum Query - Immutable | 303. 区域和检索 - 数组不可变(一维前缀和问题)
题目 https://leetcode.com/problems/range-sum-query-immutable/ 题解 标准的前缀和问题,简单题,不多说,直接上代码 import java.ut ...
- leetcode 303. 区域和检索 - 数组不可变
给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i.j 两点. 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums ...
最新文章
- 【如何快速的开发一个完整的iOS直播app】(美颜篇)
- Linux下同步模式、异步模式、阻塞调用、非阻塞调用总结
- 如何进行机器学习框架选择
- Flex Timer 定时器
- Asp.Net获取客户端信息-学习中
- Struts2 简介
- 服务器设备日常维护与管理论文,浅谈设备管理与维护论文
- C# —— IEnumerator和foreach
- 遭遇 XSS 跨站脚本攻击?稳住,这些方法可保你渡劫 | 附代码、图解
- ai人工智能对话了_产品制造商如何缓解对话式AI中的偏见
- python:查看函数方法的具体信息、参数等
- java 代码行数统计工具_代码行数统计工具
- Java 常见异常类
- 扫盲篇:数字签名、数字证书、域名劫持、域名欺骗
- VS2017编译libcef 2623_20181107完成
- css中pt单位,css中字体单位px,pt,em,百分比之间的区别和用法
- 110部值得一看的电影
- Eclipse与JDK多版本兼容性设置
- docker下载及vulhub靶场
- paypal html5 支付,uniapp 对接 paypal支付 (h5,app端)