数组前缀和

news/2024/7/2 23:59:18

前缀和

前缀和就是指前缀的和,例如在数组中,从开始到 i 就是到 i 的前缀和。前缀和一般用来求中间连续某一段的和,例如sum[i] - sum[j - 1]就可以求出j 到 i 这一段的和。

在这里插入图片描述

在这一道题目里面,中间某一段连续子数组和为k,意思即为sum[i] - sum[j - 1] = k,也即sum[i] - k = sum[j - 1],所以当我们求每一个的前缀和的时候,只需要统计对应的sum[j - 1]个数即可。sum对应的个数用map存储。注意map[0] = 1,即本身本来有一个。

class Solution {
public:
    int subarraySum(vector<int>& nums, int k) {
        int ans = 0;
        unordered_map<int, int> mp;
        int pre = 0;
        mp[0] = 1;
        for (int i : nums) {
            pre += i;
            ans += mp[pre - k];
            ++mp[pre];
        }
        return ans;
    }
};

当然还有二维数组的前缀和,不过大致原理就是这样,通过两个前缀和求中间的和。


http://lihuaxi.xjx100.cn/news/1356287.html

相关文章

gitlab代码merge或push事件触发jenkins job

1. jenkins安装generic webhook trigger plugin并重启服务&#xff0c;这个插件允许通过webhook接收器触发jenkins任务 2. 在jenkins的job配置页面&#xff0c;选择构建触发器-generic webhook trigger,&#xff08;URL&#xff1a;http://JENKINS_URL/generic-webhook-trigge…

单例模式(java)

目录 概述 结构 代码实现 饿汉式&#xff08;静态变量&#xff09; 饿汉式&#xff08;静态代码块&#xff09; 懒汉式&#xff08;双重检查方式&#xff09; 概述 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式…

doris回归测试

doris提交pull request时一般要包含回归测试&#xff0c;回归测试的目录在doris/regression-test&#xff0c; 有文档较好的说明了回归测试过程: 回归测试 - Apache Doris 跑回归测试就是执行doris目录下的 ./run-regression-test.sh --run <回归测试名> 这个<回…

前端需要知道的三个不常用的函数式编程范式

1、柯里化函数 柯里化函数&#xff08;Currying&#xff09;定义&#xff1a;是把接受多个参数的函数变换成接受一个单一参数的函数**&#xff08;最初函数的第一个参数&#xff09;的函数&#xff0c;能夠返回接受余下的参数而且返回结果的新函数**的技术 作用&#xff1a;减…

【问题总结】Docker环境下备份和恢复postgresql数据库

目录 文章目录 以从备份恢复forest_resources库为例一、备份数据库二、需要还原的数据库准备1 删除掉远程的库。2 重新创建一个空的库。可以使用sql3 找到数据库存放的路径&#xff0c;并将备份文件上传到对应的路径下 三、 进入docker容器内部&#xff0c;执行数据库恢复附录…

Jenkins (一)

Jenkins (一) Docker Jenkins 部署 一. 安装 jenkins $ mkdir -p /home/tester/data/docker/jenkins $ vim jenkins:lts-jdk11.sh./jenkins:lts-jdk11.sh 内容 #! /bin/bash mkdir -p /home/tester/data/docker/jenkins/jenkins_homesudo chown -R 1000:1000 /home/tester/da…

注解和反射:(一)注解

P1 什么是注解 注解 Annotation 作用 不是程序本身&#xff0c;但可以对程序作出解释。&#xff08;这点和**注释Comment没区别&#xff09;可以被其他程序&#xff08;如&#xff1a;编译器&#xff09;读取 格式 // 注释名 Override// 还可以添加一些参数值 SuppressWar…

Docker 仓库与注册表: 构建可靠的容器镜像生态系统

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…