【优选算法精品】前缀和

news2024/12/16 15:00:55

文章目录

  • 一、前缀和
    • 前缀和问题
    • 一维前缀和模板
    • 二维前缀和模板
  • 细节处理
  • 题目1
    • 思路
    • 细节处理:
  • 题目2
    • 思路
  • 题目3
  • 题目4
  • 题目5
  • 题目6
  • 总结


一、前缀和

前缀和问题

前缀和用来快速解决某一段连续区间的和。

时间复杂度O(1)

注意:不要背模板,不要背模板,不要背模板!!!

一维前缀和模板

  • 1)预处理一个前缀和数组

    • 针对本道题:前缀和模板
    • dp[i] = dp[i-1] + arr[i];
      dp[i]表示:从[1,i]连续区间内所有元素的和。
  • 2)使用前缀和解决问题


重点:不要背模板,不要背模板,不要背模板!!!

每道题的情况不同,唯一相同的是前缀和思想,利用这个思想求一段连续区间内所有元素的和即可。

二维前缀和模板

二维前缀和

以该题为例:

利用二维前缀和数组的思想:
dp[i][j]表示:从[1,1]坐标开始到[i,j]坐标结束,这段连续区间内所有元素的和。

dp[i][j] = dp[i-1][j] + dp[i][j-1] + arr[i][j] - dp[i-1][j-1]

细节处理

由于i应该要从1开始,所以当i = 0时,会越界,这里可以多开一个空间,并保证空间的初始化不会影响后续的结果。

题目1

寻找数组的中心下标

思路

使用一维前缀和的思想,假设
[0~i-1]区间的所有元素的和 = f[i];
[i+1,n-1]区间的所有元素的和 = g[i];

f[i] = f[i-1] + arr[i-1];
g[i] = g[i+1] + arr[i+1];

细节处理:

  • f[0] = 0,g[n-1] = 0
    因为这种边界情况会越界
    f从左到右开始求和
    g从右到左求和

题目2

除自身以外数组的乘积

思路

与题目一思路几乎一样。

在这里插入图片描述

题目3

和为 K 的子数组

这道题上强度了,难度比较大,我是看了解析看了三遍才弄懂它的思路。

在这里插入图片描述

题目4

和可被 K 整除的子数组

这道题的整体思路与上一道题的思路也是几乎相同。

主要区别就是这道题要引入一个数学定理。

还有一个在c++和java两个语言中,负%正=负;这个问题在本道题中需要进行修正。

其他细节问题一样的。
在这里插入图片描述

题目5

连续数组

解题思路:

在这里插入图片描述

题目6

矩阵区域和

这道题是一个二维前缀和,难度还是挺大的,不过只要把思路捋清楚,多花点时间也是可以的。

在这里插入图片描述


总结

这篇文章是关于前缀和的题目解题思路以及一些模板,还是那句话,不要背模板。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1140632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

死锁Deadlock

定义 死锁是指两个或多个线程互相持有对方所需的资源,从而导致它们无法继续执行的情况。如下图所示,现有两个线程,分别是线程A及线程B,线程A持有锁A,线程B持有锁B。此时线程A想获取锁B,但锁B需等到线程B的结…

计算机网络之数据链路层(全)

[复习提示] 王道:本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最…

C++学习笔记之三(标准库、标准模板库、vector类)

C 1、C标准库2、C标准模板库2.1、vector2.1.1、vector与array2.1.2、vector与函数对象2.1.3、vector与迭代器 1、C标准库 C C C标准库指的是标准程序库( S t a n d a r d Standard Standard L i b a r a y Libaray Libaray),它定义了十个大类,其中包括…

只有向内生长,才能向外绽放——中国人民大学与加拿大女王大学金融硕士

这个时代,产业迭代、竞争愈发激烈、世界局势变幻等这些都是我们无法控制的事。我们能做到的是不断地努力提升自己,成为所在领域的佼佼者。人的成长之路,就像是一场循序渐进的蜕变。不断努力是让自己逐步增值的过程。只有向内生长,…

世界经济论坛:ChatGPT等生成式AI,对全球23%岗位产生巨大影响

世界经济论坛与全球最大上市咨询公司之一埃森哲合作,联合发布了《未来工作:大语言模型与就业》白皮书。 世界经济论坛表示,随着ChatGPT、Midjourney、Github Copilot等生成式AI的飞速发展,对全球经济和劳动市场产生巨大影响。未来…

手写Vue渲染器render函数

使用js对象来描述UI更加的灵活。“这种对象”在vue框架中被称为虚拟DOM,渲染函数内部可以创建虚拟DOM,然后vue.js可以将其内容进行渲染。 1.渲染器的介绍 渲染器的作用就是把虚拟DOM渲染为真实DOM 思考下,我们有一个虚拟 DOM,如…

js数组的常用方法

目录 1. 添加/删除元素 2. 查找和遍历 3. 转换 4. 排序 5. 其他 JavaScript中的数组是一种用于存储多个值的对象。数组提供了一系列的方法来进行操作,包括添加、删除、遍历和搜索等。下面列举了一些JavaScript数组的常用方法: 1. 添加/删除元素 pu…

C指针 --- 进阶

目录 1. 字符指针 1.1. 一般使用 1.2. 另一种使用 2. 指针数组 3. 数组指针 3.1. 数组指针 3.2. 数组名和&数组名 3.3. 数组指针的用处 1. 传递一个数组 2. 传递数组首元素的地址 3. 数组指针处理一维数组 4. 数组指针处理二维数组 4. 数组传参和指针传参 4.1…

PHP危险函数

PHP危险函数 文章目录 PHP危险函数PHP 代码执行函数eval 语句assert()语句preg_replace()函数正则表达式里修饰符 回调函数call_user_func()函数array_map()函数 OS命令执行函数system()函数exec()函数shell_exec()函数passthru() 函数popen 函数反引号 实列 通过构造函数可以执…

杂牌行车记录仪特殊AVI结构恢复案例

最近遇到一个杂牌的行车记录仪需要恢复数据,其使用AVI格式,但是在扫描恢复的过程中却发现厂家对其AVI结构进行了“魔改”致程序无法正常识别 故障存储:16G SD卡 fat32文件系统 故障现象: 16G的SD卡,在发生事故后客户尝试自行接到手机上读…

小红书素人铺量推广费用是多少?

小红书作为一个拥有庞大用户群体的社交电商平台,在品牌营销和产品推广方面具有巨大的潜力。其中,素人铺量推广作为一种常见的推广方式,被越来越多的品牌和商家所采用。但是,对于很多刚刚接触小红书推广的人来说,素人铺…

二维码智慧门牌管理系统升级解决方案:一级属性 二级属性

文章目录 前言一、什么是智慧门牌管理系统?二、一级属性 vs. 二级属性三、升级中的实践意义 前言 在本文中,我们将深入探讨二维码智慧门牌管理系统的升级解决方案,特别聚焦于一级属性和二级属性的关键概念。我们将详细解释这些概念&#xff…

如何做好建筑翻译呢

近年来,随着跨国工程项目增加,建筑翻译也越来越受到重视。尤其是建筑图纸翻译在工程设计、规划和施工等方面都具有重要意义。那么,如何做好建筑翻译呢,建筑工程翻译哪个比较正规? 在建筑行业日新月异的发展中&#xff…

项目进度延误,危机管理5大注意事项

项目延误危机管理的重要性是不可忽视的。项目延误可能会导致资源浪费、成本增加、客户不满、信誉受损等一系列问题,严重影响项目的成功与效益。因此,有效地进行项目延误危机管理是至关重要的,一般主要是从以下5个方面进行管理: 1、…

python yield用法

用法和ts中的差不多 def test():i[1,2,3,4]for x in i:yield x for j in test():print(j) 使用的时候就会返回一次值 实际使用中可以这样使用,例如我把df按照半小时进行分割,然后分别取处理每半小时的数据 def test():final_df[raw_timestamp] pd.t…

js使用构造函数的注意点?

目录 前言 使用构造函数的注意点 1. 使用 new 关键字 用法 代码示例 理解 2. 构造函数首字母大写 用法 代码示例 理解 3. 在构造函数中返回对象 用法 代码示例 理解 4. 使用原型链 用法 代码示例 理解 总结 前言 JavaScript 是一种基于原型的语言&#xff…

【C#】LIMS实验室信息管理系统源码

一、系统概述 LIMS(Laboratory Information Management System)即实验室信息管理系统,是通过对样品检验流程、分析数据及报告、实验室资源和客户信息等要素的综合管理,按照标准化实验室管理规范,建立符合实验室业务流程的质量体系,实现实验室信息化管理。是实验室提高分析水平…

serverSocket编程DEMO

目录 0、jar包依赖 1、ServerSocket服务端主程序: 2、任务执行类 3、tomcatJdbcPool: 4、客户端: 0、jar包依赖 1、ServerSocket服务端主程序: package socket;import java.net.ServerSocket; import java.net.Socket; impo…

python try-except捕获异常的方法

python try-except捕获异常的方法 执行过程 1、是从try下的代码块1开始执行。 2、如果有异常抛出,异常将被捕获,直接跳转并执行except下的代码块2。、如果代码块1一切正常,没有异常抛出,代码块2就不会执行。 也就是说&#xff…

大语言模型助力审计问题自动定性

国家审计作为以权力监督制约权力的一项制度安排,是党和国家监督体系的重要组成部分,是国家治理大系统中一个内生的具有预防、揭示和抵御功能的“免疫系统”,是国家治理的基石和重要保障,在推进“全面建成小康社会、全面深化改革、…