labuladong算法小抄-前缀和-leetcode303、leetcode304、leetcode560、leetcode327

1.前缀和

1.1 思想

用一个数组进行存储数组区间之和,涉及到区间和的查询,直接使用前缀和数组进行查询,用空间换时间!

1.2 声明方式 

 一维前缀和数组申明方式

int []sum = new int[n+1];
sum[0] = 0;
// 一般会留出0位置的元素充当边界值
// sum[i]中i表示第几个元素,sum[0]表示没有元素的前缀和
for (int i=1;i<=n;i++){
    sum[i+1] = sum[i] + nums[i];
}

1.3 适用范围

 适用于数组不做修改的区间累加快速求和!

2.例题

leetcode303

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

leetcode304

 

class NumMatrix {
    int [][]sum;
    public NumMat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿联爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值