当前位置: 首页 > news >正文

优选算法第四讲:前缀和模块

优选算法第四讲:前缀和模块

  • 1.[模板]前缀和
  • 2.【模板】二维前缀和
  • 3.寻找数组的中心下标
  • 4.除自身以外数组的乘积
  • 5.和为k的子数组
  • 6.和可被k整除的子数组
  • 7.连续数组
  • 8.矩阵区域和

1.[模板]前缀和

链接: link
在这里插入图片描述

#include <iostream>
#include <vector>
using namespace std;int main() {int n = 0, q = 0;cin >> n >> q;vector<int> arr(n+1);//开辟一个n+1的数组for(int i = 1; i <= n; i++) cin >> arr[i];//创建一个前缀和数组。vector的构造会自己初始化vector<long long> dp(n+1);//更新前缀和数组for(int i = 1; i<=n; i++) dp[i] = dp[i-1] + arr[i];//直接使用前缀和数组进行返回即可int l = 0, r = 0;while(q--){cin >> l >> r;cout << dp[r] - dp[l-1] << endl;//直接输出结果即可}return 0;
}

2.【模板】二维前缀和

链接: link
在这里插入图片描述

3.寻找数组的中心下标

链接: link
在这里插入图片描述

class Solution {
public:int pivotIndex(vector<int>& nums) {int n = nums.size();vector<int> f(n), g(n);//1.分别求出前缀和、后缀和数组for(int i = 1; i<n; i++)f[i] = f[i-1] + nums[i-1];for(int i = n-2; i>=0; i--)g[i] = g[i+1] + nums[i+1];//2.使用前缀和、后缀和数组for(int i = 0; i<n; i++)if(f[i] == g[i]) return i;return -1;}
};

4.除自身以外数组的乘积

链接: link
在这里插入图片描述

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> f(n), g(n);//1.先求出f和g数组f[0] = 1;//注意:细节问题一定要处理g[n-1] = 1;for(int i = 1; i<n; i++)f[i] = f[i-1] * nums[i-1];for(int i = n-2; i>=0; i--)g[i] = g[i+1] * nums[i+1];//2.使用两数组vector<int> ret(n);for(int i = 0; i<n; i++)ret[i] = f[i] * g[i];return ret;}
};

5.和为k的子数组

链接: link
在这里插入图片描述

class Solution {
public:int subarraySum(vector<int>& nums, int k) {unordered_map<int, int> hash;hash[0] = 1;int sum = 0, ret = 0;for(auto e : nums){sum += e;//计算当前位置的前缀和if(hash.count(sum - k)) ret += hash[sum-k];hash[sum]++;}return ret;}
};

6.和可被k整除的子数组

链接: link
在这里插入图片描述

class Solution {
public:int subarraysDivByK(vector<int>& nums, int k) {unordered_map<int, int> hash;hash[0] = 1;//细节问题:如果nums的和可被k整除,那么也要将次数+1int sum = 0, ret = 0;for(auto e : nums){sum += e;int r = (sum%k + k) % k;//求余数的方法if(hash.count(r)) ret += hash[r];//如果sum%k = 前缀和%k,那么就可以被k整除hash[r]++;}return ret;}
};

7.连续数组

链接: link
在这里插入图片描述

class Solution {
public:int findMaxLength(vector<int>& nums) {unordered_map<int, int> hash;hash[0] = -1;int sum = 0, ret = 0;for(int i = 0; i<nums.size(); i++){sum += nums[i] == 0 ? -1 : 1;//我们不需要将数组的0改为1,只需要在加的这个部分加-1就行了if(hash.count(sum)) ret = max(ret, i-hash[sum]);else hash[sum] = i;//此时存储的应该是下标}return ret;}
};

8.矩阵区域和

链接: link
在这里插入图片描述

class Solution {
public:vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int k) {int m = 0, n = 0;m = mat.size();n = mat[0].size();//先计算出前缀和数组vector<vector<int>> dp(m+1, vector<int>(n+1));for(int i = 1; i<=m; i++)for(int j = 1; j<=n; j++)dp[i][j] = dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+mat[i-1][j-1];//前缀和数组的使用vector<vector<int>> ret(m, vector<int>(n));for(int i = 0; i<m; i++){for(int j = 0; j<n; j++){int x1 = 0, y1 = 0, x2 = 0, y2 = 0;x1 = max(0, i-k) + 1;y1 = max(0, j-k) + 1;x2 = min(m-1, i+k) + 1;y2 = min(n-1, j+k) + 1;ret[i][j] = dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1];}}return ret;}
};

相关文章:

优选算法第四讲:前缀和模块

优选算法第四讲&#xff1a;前缀和模块 1.[模板]前缀和2.【模板】二维前缀和3.寻找数组的中心下标4.除自身以外数组的乘积5.和为k的子数组6.和可被k整除的子数组7.连续数组8.矩阵区域和 1.[模板]前缀和 链接: link #include <iostream> #include <vector> using…...

ubuntu20.04 加固方案-设置限制su命令用户组

一、编辑/etc/pam.d/su配置文件 打开终端。 使用文本编辑器&#xff08;如vim&#xff09;编辑/etc/pam.d/su文件。 vim /etc/pam.d/su 二、添加配置参数 在打开的配置文件的中&#xff0c;添加以下参数&#xff1a; auth required pam_wheel.so 创建 wheel 组 并添加用户 …...

TDengine数据备份与恢复

TDengine数据备份与恢复 一、数据备份和恢复介绍二、基于 taosdump 进行数据备份恢复三、基于 taosExplorer 进行数据备份恢复3.1 taosExplorer 的安装与配置3.2 使用taosExplorer 进行数据备份 一、数据备份和恢复介绍 官网地址&#xff1a;TDengine - 数据备份和恢复 为了防止…...

2024最新的开源博客系统:vue3.x+SpringBoot 3.x 前后端分离

本文转载自&#xff1a;https://fangcaicoding.cn/article/54 大家好&#xff01;我是方才&#xff0c;目前是8人后端研发团队的负责人&#xff0c;拥有6年后端经验&3年团队管理经验&#xff0c;截止目前面试过近200位候选人&#xff0c;主导过单表上10亿、累计上100亿数据…...

研究中的“异质性”、“异质性结果”是指?

“异质性”这个词在统计学和研究中指的是数据、现象或群体之间的差异&#xff0c;即不同个体、组别、区域或时间点的表现或特征并不相同。相对的概念是“同质性”&#xff0c;即所有个体或组别在某一方面表现相同或接近。 异质性&#xff08;Heterogeneity&#xff09;的含义 …...

Springboot整合AOP和redis

aop pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 开启自动代理 注意&#xff1a;在完成了引入AOP依赖包后&#xff0c;一般来说并不需要去做其他…...

freetype学习总结

freetype学习总结 目录 freetype学习总结1. LCD显示字符问题引入2. freetype概念2.1 嵌入式设备使用FreeType的方法步骤2.2 嵌入式设备使用FreeType的注意事项 3. freetype官方C示例3.1 example1.c源码 4. 嵌入式设备上使用FreeType的简单示例4.1 简单示例代码4.2 代码分析 5. …...

上海亚商投顾:沪指缩量调整 华为概念股午后爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整&#xff0c;沪指、深成指午后跌超1%&#xff0c;创业板指一度跌逾2%&#xff0c;尾盘跌幅有…...

操作系统与进程【单身狗定制版】

大家好呀 我是浪前 今天给大家讲解的是操作系统与进程 祝愿所有点赞关注的人&#xff0c;身体健康&#xff0c;一夜暴富&#xff0c;升职加薪迎娶白富美!!! 点我领取迎娶白富美大礼包 前言&#xff1a; 我们今天我们来学习操作系统 当然啦&#xff0c;操作系统是一个很庞大的…...

监听el-table中 自定义封装的某个组件的值发现改变调用函数

监听el-table中 自定义封装的某个组件的值发现改变调用函数 当你在一个 el-table 中使用封装的自定义组件作为单元格内容时&#xff0c;监听这个组件的值变化并调用函数&#xff0c;可以通过以下步骤实现&#xff1a; 创建自定义组件&#xff1a;首先创建一个自定义的 Vue 组…...

frida安装

开始安装 frida https://github.com/frida/frida/releases 下载安装的时候查看自己手机是多少位的 adb shell getprop ro.product.cpu.abi # 按照自己的机型下载进行解压里面有个文件放入到手机中开始进入手机 然后按照下面的图执行命令 其中log 我只是看了下 不需要执行因为刚…...

链表详解(三)

目录 链表功能实现链表的查找SLNode* SLFind(SLNode* phead, SLNDataType x)代码 链表任意位置前插入void SLInsert(SLNode**pphead&#xff0c;SLNode* pos, SLNDataType x)代码 链表任意位置前删除void SLErase(SLNode**pphead&#xff0c;SLNode* pos)代码 链表任意位置后插…...

【RESP问题】RESP.app GUI for Redis 连接不上redis服务器

问题描述&#xff1a; 在使用RESP的时候出现地址和密码正确但是连接不上Redis服务器的情况&#xff0c;但是由于在之前我是修改过Redis的配置文件的&#xff0c;所以现在怀疑是防火墙的问题。 问题解决&#xff1a; 在[rootlocalhost ~]下输入以下命令打开防火墙 #放通6379/…...

【github 有趣项目】AMULE

官方网站github ‘All-platform’ P2P client based on eMule电骡社区文档 下载&安装 去官方网站下载&#xff08;社区版一般版本较新&#xff09;&#xff0c;解压版解压打开即可。 点击“下一页”&#xff0c;输入名称&#xff0c;后边全都下一步即可 通过upnp设置端…...

【WRF数据准备】土地利用类型分类标准:USGS+MODIS IGBP 21

【WRF数据准备】土地利用类型分类标准&#xff1a;USGSMODIS IGBP 21 WRF常用土地类型分类MODIS IGBP 21USGSNLCD Landuse 选择土地利用分类标准替换城市土地类型后更改土地利用分类参考 WRF常用土地类型分类 WRF中土地利用类型最高分辨率是30s&#xff0c;且主要分为MODIS和U…...

KVM虚拟机迁移:无缝迁徙,重塑云上未来

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…...

CSS常见适配布局方式

在网页设计中&#xff0c;布局是确保内容按预期显示的关键部分。CSS 提供了多种布局方式&#xff0c;每种方式都有其特定的用途和优势。以下是您提到的五种布局方式的详细解释&#xff1a; 1. 流式布局&#xff08;百分比布局&#xff09; 概述&#xff1a; 流式布局&#xf…...

ArkUI常用布局:构建响应式和高效的用户界面

在HarmonyOS应用开发中&#xff0c;ArkUI作为用户界面开发框架&#xff0c;提供了多种布局方式来帮助开发者构建响应式和高效的用户界面。本文将详细介绍ArkUI中的常用布局方式&#xff0c;包括线性布局、层叠布局、弹性布局、相对布局、栅格布局、列表和轮播布局&#xff0c;并…...

论面向服务架构设计及其应用

一、引言 企业应用集成&#xff08;Enterprise Application Integration&#xff0c;EAI&#xff09;是企业实现信息系统协同工作的关键途径&#xff0c;尤其是在当前多系统、多平台并存的企业环境下&#xff0c;集成需求愈发显著。面向服务架构&#xff08;Service-Oriented …...

HTML5 + CSS3 + JavaScript 编程语言学习教程

HTML5 CSS3 JavaScript 编程语言学习教程 欢迎来到这篇关于 HTML5、CSS3 和 JavaScript 的详细学习教程&#xff01;无论你是初学者还是有一定基础的开发者&#xff0c;这篇文章都将帮助你深入理解这三种技术的核心概念、语法和应用。 目录 HTML5 1.1 HTML5 简介1.2 HTML5 …...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...