【算法】前缀和(一)原理

【算法】前缀和(一)原理

目录

一、题目描述

二、算法原理

动态规划

1.前缀和

1.1同类累

1.2所有路出

三、提交代


一、题目描述

【模板】前缀和_牛客题霸_牛客网

描述

对于给定的长度为 nn 的数组 {a1,a2,…,an}{a1​,a2​,…,an​} ,我们有 mm 次查询操作,每一次操作给出两个参数 l,rl,r ,你需要输出数组中第 ll 到第 rr 个元素之和,即 al+al+1+⋯+aral​+al+1​+⋯+ar​ 。

输入描述:

第一行输入两个整数 n,m(1≦n,m≦105)n,m(1≦n,m≦105) 代表数组中的元素数量、查询次数。

第二行输入 nn 个整数 a1,a2,…,an(−109≦ai≦109)a1​,a2​,…,an​(−109≦ai​≦109) 代表初始数组。

此后 mm 行,每行输入两个整数 l,r(1≦l≦r≦n)l,r(1≦l≦r≦n) 代表一次查询。

输出描述:

对于每一次查询操作,在一行上输出一个整数,代表区间和。

示例

输入:

3 2 1 2 4 1 2 2 3

输出:

3 6


二、算法原理动态规划

同类累积问题 可 所有路出1.前缀和

1.1同类累积

前缀区间和= 再前缀区间和 + 当前数(dp[i] = dp[i - 1] + arr[i])1.1.1拆拼

整体 拆成 能同类累积部分拼合成:

238. 除自身以外数组的乘积 - 力扣(LeetCode)

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。

请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

示例 1:输入: nums = [1,2,3,4] 输出: [24,12,8,6]

示例 2:输入: nums = [-1,1,0,-3,3] 输出: [0,0,9,0,0]

提示:2 <= nums.length <= 105-30 <= nums[i] <= 30输入 保证 数组 answer[i] 在  32 位 整数范围内

1.2所有路出

所有前缀区间和一路累积算出

三、提交代码

public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(), m = in.nextInt(); int[] array = new int[n + 1]; for(int i = 1;i <= n;i++) array[i] = in.nextInt(); // 所有前缀和累积算出 long[] dp = new long[n + 1]; for(int i = 1;i <= n;i++) dp[i] = dp[i - 1] + array[i]; while(m > 0) { int l = in.nextInt(), r = in.nextInt(); System.out.println(dp[r] - dp[l - 1]); m--; } }

Read more

Python操作国产金仓数据库(KingbaseES)全流程:搭建连接数据库的API接口

Python操作国产金仓数据库(KingbaseES)全流程:搭建连接数据库的API接口

Python操作国产金仓数据库(KingbaseES)全流程:搭建连接数据库的API接口 Python操作国产金仓数据库(KingbaseES)全流程:搭建连接数据库的API接口,金仓数据库(KingbaseES)作为一款靠谱的国产关系型数据库,在政府、金融这些对数据安全要求高的领域用得特别广。今天这篇文章,就来手把手教大家怎么用Python搭建连接KingbaseES的API接口,把用户信息的CRUD(创建、查询、更新、删除)操作全实现了,帮咱们开发者快速上手金仓数据库的Python开发。 前言     中电科金仓(北京)科技股份有限公司(以下简称“电科金仓”)成立于1999年,是成立最早的拥有自主知识产权的国产数据库企业,也是中国电子科技集团(CETC)成员企业。电科金仓以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。     电科金仓自成立起始终坚持自主创新,专注数据库领域二十余载,具备出色的数据库产品研发及服务能力,核心产品金仓数据库管理系统KingbaseES(简称“KES”)是面向全行业、全客户关键应用的企

By Ne0inhk
【Python基础】(五)Python 库使用全攻略:从标准库到第三方库,让开发效率翻倍

【Python基础】(五)Python 库使用全攻略:从标准库到第三方库,让开发效率翻倍

目录 编辑 前言 一、Python 库的核心认知:什么是库?为什么要用库? 1.1 库的本质:现成的 "代码工具箱" 1.2 库的分类:标准库 vs 第三方库 (1)标准库:Python 自带的 "基础工具箱" (2)第三方库:全球开发者共建的 "扩展工具箱" 1.3 使用库的核心优势:效率翻倍的关键 二、标准库实战:内置工具的高效用法 2.1 日期时间处理:datetime库(计算日期差、格式转换) 实战需求:计算你和心爱的人认识多少天 扩展用法:

By Ne0inhk
Python 基础与环境配置

Python 基础与环境配置

第一篇:Python 基础与环境配置 学习目标 💡 掌握 Python 语言的基本语法和编程思想 💡 学会安装和配置 Python 开发环境 💡 理解并熟练运用 Python 的数据类型、变量和运算符 💡 掌握 Python 的流程控制语句(条件判断、循环) 💡 学会使用 Python 的函数和模块 💡 了解 Python 的常用开发工具和集成开发环境(IDE) 💡 具备编写简单 Python 程序的能力 重点内容 * Python 语言的发展历程与特点 * Python 开发环境的安装与配置 * Python 的基本语法(变量、数据类型、运算符) * 流程控制语句(if 语句、for 循环、while 循环) * 函数的定义、调用和参数传递 * 模块和包的使用 * 常用开发工具和

By Ne0inhk
在 macOS 下升级 Python 几种常见的方法

在 macOS 下升级 Python 几种常见的方法

在 macOS 下升级 Python 有几种常见的方法,具体取决于你最初是如何安装 Python 的。了解你的安装方式是关键。 首先,你需要知道你当前 Python 版本以及它的安装路径。 1. 检查 Python 版本: python --version# 可能指向 Python 2.x python3 --version# 通常指向 Python 3.x 2. 检查 Python 路径: which python which python3 根据你 which 命令的输出,我们可以推断出安装方式。常见的安装方式有: * macOS 系统自带 Python: 通常在 /usr/bin/python。不建议直接修改或升级系统自带的

By Ne0inhk