303. Range Sum Query - Immutable
来源:互联网 发布:算法统宗中的题目 编辑:程序博客网 时间:2024/06/06 12:39
问题链接:点击打开链接
Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.
Example:
Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3
Note:
- You may assume that the array does not change.
- There are many calls to sumRange function.
public class NumArray { int[] nums; public NumArray(int[] nums) { this.nums = Arrays.copyOfRange(nums, 0, nums.length); } public int sumRange(int i, int j) { int result = 0; if(i <= j) { for(int index=i;index<=j;index++) { result += nums[index]; } } return result; }}/** * Your NumArray object will be instantiated and called as such: * NumArray obj = new NumArray(nums); * int param_1 = obj.sumRange(i,j); */运行通过,但是在测试用例的一个报错为Time Limit Exceeded,原因是没有考虑到题目提示的数组不变且多次调用,没有这部分的优化,每次调用都要重新计算,导致时间成本太大。
答案给出的方案是在初始化时就进行运算,每次调用只要简单相减即可。
Java simple O(n) init and O(1) query solution
public class NumArray {
int[] nums;public NumArray(int[] nums) { for(int i = 1; i < nums.length; i++) nums[i] += nums[i - 1]; this.nums = nums;}public int sumRange(int i, int j) { if(i == 0) return nums[j]; return nums[j] - nums[i - 1];}
}
教训:没有充分理解题目给出的意思:多次调用、题目中的Immutable
不要受固定思维的影响:认为构造函数传递过来的参数与Solution类中的存储变量是简单的重复
0 0
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- 303. Range Sum Query - Immutable
- android 获取SD卡相关信息
- 单元测试 Unit Test Generator
- 原码、反码、补码
- C# GDI+ 简单绘图 (三)
- C#输出格式
- 303. Range Sum Query - Immutable
- 数据库基础概念
- [MFC]选择目录对话框和选择文件对话框 保存对话框
- 常见文件类型处理: 属性文件/CSV/EXCEL/HTML/压缩文件
- Jetty服务器的安装配置详解
- Android5.0 标题栏顶部出现空白
- MaltReport2:基于 OpenDocument-OpenOfficeXML 的开源报表引擎
- linux下redis快速安装和开机启动
- 网络编程之uthash