【算法集训】基础算法:前缀和 | 概念篇

news/2024/12/22 20:06:48/

前缀和就是对于顺序表(数组、列表)来说,计算前面某一段元素的和。

1、部分和

给定一个数组,求某一段子数组的和。

2、朴素做法

int partialSum(int *a, int l, int r) {int i;int s = 0;for(i = l; i <= r; ++i) {s += a[i];}return s;}

如果这样求lr的和的话,假设数组的长度为n,时间复杂度为O(n)

3、前缀和

这时可以用前缀和来表示。
sum[i]表示为:

sum[i - 1]表示为:

可以得到:

4、边界值问题

需要定义一个边界,不能取到的数,否则会出错。

sum[1] 表示的是从 第0项 累加到 第1项; sum[0] 表示的是从 第0项 累加到 第0项;sum[-1] 表示的是一项都没有累加,那么这个值自然就是零了。即:

5、边界处理

这时候,我们需要注意 C/C++ 中的 下标是从零开始的,所以,sum[-1] 会导致数组下标越界,可以将它转换成函数的形式将数组 sum[] 进行一次封装:

int prefixSum(int n) {if(n == -1) {return 0;}return sum[n];
}

http://www.ppmy.cn/news/1404947.html

相关文章

java Web 辅助学习管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 java Web 辅助学习管理系统是一套完善的信息管理系统&#xff0c;结合java 开发技术和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 前段主要技术 bootstr…

使用docker部署MongoDB数据库

最近由于工作需要搭建MongoDB数据库&#xff1a;将解析的车端采集的数据写入到数据库&#xff0c;由于MongoDB高可用、海量扩展、灵活数据的模型&#xff0c;因此选用MongoDB数据库&#xff1b;由于现公司只有服务器&#xff0c;因此考虑容器化部署MongoDB数据&#xff0c;特此…

【HTML】注册页面制作 案例二

&#xff08;大家好&#xff0c;今天我们将通过案例实战对之前学习过的HTML标签知识进行复习巩固&#xff0c;大家和我一起来吧&#xff0c;加油&#xff01;&#x1f495;&#xff09; 案例复习 通过综合案例&#xff0c;主要复习&#xff1a; 表格标签&#xff0c;可以让内容…

算法错题本

这里写目录标题 错题本注意数据的耦合性对于无解情况的处理思路一组数据以0为结束标记&#xff0c;如何输入到数组中&#xff0c;并计数多个数据进行比较链表删除重复元素的启发循环体里谨慎写类型定义并初始化&#xff08;一般写上就是错&#xff09;队列中读取队尾元素数组当…

Nginx三大常用功能“反向代理,负载均衡,动静分离”

注意&#xff1a;以下案例在Windows系统计算机作为宿主机&#xff0c;Linux CentOS 作为虚拟机的环境中实现 一&#xff0c;Nginx配置实例-反向代理 1.反向代理 案例一 实现效果&#xff1a;使用nginx反向代理&#xff0c;访问 www.123.com 直接跳转到127.0.0.1:8080 准备工…

第十六章 Redies

一、Redies Remote Dictionary Service 内存存储&#xff0c;NoSQL。基于内存来存储数据。无需 IO&#xff0c;效率高。提供高可用方案。 哨兵模式&#xff0c;分布式数据存储。 1.1 Redis 基本特性 - 关系型数据与非关系型数据库对比。 - SQL > 1. 行存储&#xff0c;…

【Servlet】服务器内部转发以及客户端重定向

文章目录 一、服务器内部转发&#xff1a;request.getRequestDispatcher("...").forward(request, response);二、客户端重定向&#xff1a;response.sendRedirect("");三、服务器内部转发代码示例四、客户端重定向代码示例 一、服务器内部转发&#xff1a…

Java项目:85 springboot智能物流管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本美发门店管理系统有管理员…