zoukankan      html  css  js  c++  java
  • 303. 区域和检索

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

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

    示例:

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

    说明:

    1. 你可以假设数组不可变。
    2. 会多次调用 sumRange 方法。

    前缀和

     1 class NumArray {
     2 public:
     3     vector<int> sum;
     4     NumArray(vector<int>& nums) {
     5         if(nums.size()==0) return ;
     6         sum.push_back(nums[0]);       //sum[0]=nums[0];
     7         for(int i=1;i<nums.size();i++){
     8            sum.push_back(sum[i-1]+nums[i]);       //sum[i]=sum[i-1]+nums[i];
     9         }
    10     }
    11     
    12     int sumRange(int i, int j) {//使用sum[i]存储nums前i个元素的和。则可得到i-j 子区间的和为sum[j]-sum[i-1]
    13         if(i==0) return sum[j];
    14         return sum[j]-sum[i-1];
    15     }
    16 };
  • 相关阅读:
    vi
    head
    uniq
    sort
    所谓静态绑定
    债务
    不确
    tar
    VMWare虚拟系统上网设置 及 三种模式详解
    awk
  • 原文地址:https://www.cnblogs.com/NirobertEinteson/p/12546293.html
Copyright © 2011-2022 走看看