首页 > 其他分享 >前缀和-leetcode303

前缀和-leetcode303

时间:2023-04-06 10:25:02浏览次数:36  
标签:right leetcode303 前缀 NumArray int nums prefixNum sumRange

LeetCode上的题目 "303. 区域和检索 - 数组不可变",是一个相对简单的问题。

问题描述:

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

实现 NumArray 类:

NumArray(int[] nums) 用整数数组 nums 初始化对象
int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i, j 两点(也就是 sum(nums[i], nums[i + 1], ... , nums[j]))
示例:

输入:
nums = [-2, 0, 3, -5, 2, -1]
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3

思路:利用前缀和或者dp 记录,从头开始每一步的累计和,然后在需要的时候直接取值


//leetcode submit region begin(Prohibit modification and deletion)
class NumArray {

    private int[] prefixNum;

    public NumArray(int[] nums) {
        prefixNum = new int[nums.length];
        prefixNum[0]=nums[0];
        for (int i = 1; i < nums.length; i++) {
            prefixNum[i]= prefixNum[i-1]+nums[i];
        }
    }

    public int sumRange(int left, int right) {
        if(left == 0){
            return prefixNum[right];
        }
        return prefixNum[right]-prefixNum[left-1];
    }
}

/**
 * Your NumArray object will be instantiated and called as such:
 * NumArray obj = new NumArray(nums);
 * int param_1 = obj.sumRange(left,right);
 */
//leetcode submit region end(Prohibit modification and deletion)

标签:right,leetcode303,前缀,NumArray,int,nums,prefixNum,sumRange
From: https://www.cnblogs.com/xiaoshahai/p/17291794.html

相关文章

  • js用前缀名查找class或id节点,js模糊查询某个dom节点
    js在操作dom的场景中,有时候会有类似的场景需求。js用前缀名查找class节点//参数dom为htmldom节点//参数key为需模糊查询的名称字段functionqueryClassNode(dom,key){letcollectArray=[];for(vari=0;i<dom.childNodes.length;i++){ //核心点......
  • 用前缀树实现中文敏感词过滤器
    前言本文代码实现一个中文的敏感词过滤器,预先将准备好的敏感词写入前缀树数据结构中实现快速检索,并且节省内存。一般用于检查注册用户名称、言论是否包含不文明的词汇。可以判断内容是否包含敏感词;找出内容中的敏感词;将内容中的敏感词替换成设置的字符。运行环境代码使用了JDK......
  • 前缀和
    [acwing]4405.统计子矩阵#include<cstdio>usingnamespacestd;typedeflonglongLL;constintN=510;intn,m,k;ints[N][N];LLres;intmain(){scanf("%d%d%d",&n,&m,&k);for(inti=1;i<=n;i++)......
  • 咬咬龟对前缀和的反对
    咬咬龟对前缀和的反对在计算机科学中,前缀和(PrefixSum)是一种常见的算法技术,用于高效地处理数组或序列中某一区间内元素的和。然而,在最近的一次直播中,国内知名主播咬咬龟表达了他对前缀和算法的反对意见,引发了广泛的讨论和争议。咬咬龟指出,前缀和算法虽然在某些情况下可以提高算......
  • 【LBLD】小而美的算法技巧:前缀和数组
    【LBLD】小而美的算法技巧:前缀和数组一维数组中的前缀和classNumArray{private:vector<int>preSum;public:NumArray(vector<int>&nums){preSum.push_back(0);for(inti=1;i<nums.size()+1;i++){preSum.push_back(......
  • 前缀和和差分
    前缀和和差分前缀和#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<vector>#include<cstring>#include<unordered_set>#include<set>#include<stack>#include<map&g......
  • LeetCode 周赛 338,贪心 / 埃氏筛 / 欧氏线性筛 / 前缀和 / 二分查找 / 拓扑排序
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。上周末是LeetCode第338场周赛,你参加了吗?这场周赛覆盖的知识点很多,第四题......
  • 如何自定义 elementui 的前缀
    1、安装插件:postcss-change-css-prefix2、在根目录下创建postcss.config.js文件,并写入如下内容:constaddCssPrefix=require('postcss-change-css-prefix')module.e......
  • 解决WP表前缀更换后出现的You do not have sufficient permission
    将安装的wordpress表前缀由默认的wp_修改为其它了,再次登陆后台后出现Youdonothavesufficientpermissionstoaccessthispage.网上搜索了一下,说是修改检查wp_userme......
  • 前缀和算法
    前缀和算法什么是前缀和?前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而拆分可以看成前缀和的逆运算。合理的使用前缀和与拆分,可以将某些复杂的问题简......