【算法挨揍日记】day16——525. 连续数组、1314. 矩阵区域和

525. 连续数组
525. 连续数组
题目描述:
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。

解题思路:
本题的元素只有0和1,根据题目意思,我们可以把题目看成找一段最长的子区间使得区间的0
和1的数量相同,我们可以对其优化将所有的0变成-1,这样这段区间的和就为0
也就是转化为在【0,i-1】这个区间内最长的和为0的子数组
我们依旧可以利用哈希表hash,我们还得处理一下默认前缀和为0的时候等于-1的时候
长度的计算:

解题思路:
class Solution {
public:int findMaxLength(vector<int>& nums) {unordered_map<int,int>hash;hash[0]=-1;int ret=0,sum=0;for(int i=0;i<nums.size();i++){sum+=nums[i]==0?-1:1;if(hash.count(sum))ret=max(ret,i-hash[sum]);else hash[sum]=i;}return ret;}
};
1314. 矩阵区域和
1314. 矩阵区域和
题目描述:
给你一个 m x n 的矩阵 mat 和一个整数 k ,请你返回一个矩阵 answer ,其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和:
i - k <= r <= i + k,j - k <= c <= j + k且(r, c)在矩阵内。
解题思路:
本题我们还是使用前缀和+哈希表,不过是二维前缀和
因为本题的计算的下标的范围可能会越界,因此我们可以min和max函数就行解决,这里的+1是因为需要进行下标匹配,下标匹配下面会讲;

有个细节需要注意就是:
我们的mat数组是从0开始的,而我们的前缀和数组dp是从1开始,而我们返回的数组ans是从0开始的
因为力扣进行结果判断的时候需要从0开始,不然本题更加简单
解题代码:
class Solution {
public:vector<vector<int>> matrixBlockSum(vector<vector<int>>& mat, int k) {int n=mat.size();int m=mat[0].size();vector<vector<int>> dp(n+1,vector<int>(m+1));for(int i=1;i<=n;i++)for(int j=1;j<=m;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>> ans(n,vector<int>(m));for(int i=0;i<n;i++){for(int j=0;j<m;j++){int x1=max(0,i-k)+1;int y1=max(0,j-k)+1;int x2=min(n-1,i+k)+1;int y2=min(m-1,j+k)+1;ans[i][j]=dp[x2][y2]-dp[x2][y1-1]-dp[x1-1][y2]+dp[x1-1][y1-1];}}return ans;}
};
相关文章:
【算法挨揍日记】day16——525. 连续数组、1314. 矩阵区域和
525. 连续数组 525. 连续数组 题目描述: 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 解题思路: 本题的元素只有0和1,根据题目意思,我们可以把题目看成找一段最…...
k8s-13 存储之secret
Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。 敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活 。 Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里 当 kubelet 为 pod 拉…...
什么是高阶成分(HOC)
高阶组件(Higher-Order Component,HOC)是一种在React中用于组件复用和逻辑抽象的设计模式。它本质上是一个函数,接受一个组件作为参数,并返回一个新的组件。 1. HOC的作用: HOC允许我们在不修改原始组件的…...
深度学习硬件配置推荐
目录 1. 基础推荐2. GPU显存与内存是一个1:4的配比?3. deep learning 入门和kaggle比赛4. 有些 Kaggle 比赛数据集很大,可能需要更多的 GPU 显存,请推荐显存4. GDDR6和HBM25. HDD 或 SATA SSD1. 基础推荐 假设您作为一个深度学习入门学者的需求,以下是一份推荐的电脑硬件配…...
数仓建设(一)
想了想,我们的数仓的建设是基于大数据平台进行的,中间也经历了比较曲折的过程。 每个行业都有自身的业务区别,不过很多还是比较相通的。 本文将全面讲解数仓建设规范,从数据模型规范,到数仓公共规范,数仓各…...
Springboot整合taos时序数据库TDengine
1.首先安装TDengine服务端在linux上 TDengine多种安装包的安装和卸载 - TDengine | 涛思数据安装过程直接去官网看,非常详细简单 2.出现的问题 windows连接 invalid app version 版本不对应 版本不对应的问题,需要在linux上安装的版本和windows client版本一致,不然w…...
Epoch、批量大小、迭代次数
梯度下降 它是 机器学习中使用的迭代 优化算法,用于找到最佳结果(曲线的最小值)。 坡度 是指 斜坡的倾斜度或倾斜度 梯度下降有一个称为 学习率的参数。 正如您在上图(左)中看到的,最初步长较大&#…...
qt-C++笔记之清空QVBoxLayout中的QCheckBox
qt-C笔记之清空QVBoxLayout中的QCheckBox QVBoxLayout 和 QCheckBox 是两个类,都是 PyQt/PySide 中用于创建图形用户界面 (GUI) 的工具。它们通常与 Qt 库一起使用,Qt 是一个流行的跨平台 GUI 库,可以用于创建桌面应用程序。 QVBoxLayout: Q…...
pc微信39223部分算法call偏移
WechatWin.dll 基址:78FD0000 MD5_Init_call 7AF48C80 | 56 | push esi | 7AF48C81 | 8B7424 08 | mov esi,dword ptr ss:[esp0x8] | 7AF48C85 | 6A 4C | push 0x4C …...
尚硅谷Flink(三)时间、窗口
1 🎰🎲🕹️ 🎰时间、窗口 🎲窗口 🕹️是啥 Flink 是一种流式计算引擎,主要是来处理无界数据流的,数据源源不断、无穷无尽。想要更加方便高效地处理无界流,一种方式就…...
MPLS基础
1. MPLS原理与配置 MPLS基础 (1)MPLS概念 MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。 通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部实现数据快速转发。 本课程仅介绍MPLS在…...
react+antd+Table实现表格初始化勾选某条数据,分页切换保留上一页勾选的数据
加上rowKey这个属性 <Table rowKey{record > record.id} // 加上rowKey这个属性rowSelection{rowSelection}columns{columns}dataSource{tableList}pagination{paginationProps} />...
Linux shell编程学习笔记13:文件测试运算
Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、逻辑、字符串、文件测试等多种运算。前面几节我们依次研究了 Linux shell编程 中的 字符串运算、算术运算、关系运算、布尔运算 和 逻辑运算,今天我们来研究 Linux shell编程中的文件测…...
element ui this.$msgbox 自定义组件
this.$msgbox({title: "选择", message: (<com1figs{this.figs} on-selected{this.new_selected}></com1>),showCancelButton: false,showConfirmButton: false,}); 运行报错 Syntax Error: Unexpected token (89:20) 参考: https://gith…...
尚硅谷Flink(四)处理函数
目录 🦍处理函数 🐒基本处理函数 🐒按键分区处理函数(KeyedProcessFunction) 🐵定时器(Timer)和定时服务(TimerService) // 1、事件时间的案例 // 2、处理…...
AXURE RP EXTENSION For Chrome 安装
在浏览器上输入地址:chrome://extensions/ 打开图片中这个选项,至此你就能通过index.html访问...
24、Flink 的table api与sql之Catalogs(java api操作视图)-3
Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…...
【CNN-GRU预测】基于卷积神经网络-门控循环单元的单维时间序列预测研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
计算机毕业设计--基于SSM+Vue的物流管理系统的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
GPT4 Plugins 插件 WebPilot 生成抖音文案
1. 生成抖音文案 1.1. 准备1篇优秀的抖音文案范例 1.2. Promept公式 你是一个有1000万粉丝的抖音主播, 请模仿下面的抖音脚本文案,重新改与一篇文章改写成2分钟的抖音视频脚本, 要求前一部分是十分有争议性的内容,并且能够引发…...
Python报错Resource averaged_perceptron_tagger_eng not found
用python标注英文单词词形时,报错: import nltk nltk.download(‘averaged_perceptron_tagger_eng’) Resource averaged_perceptron_tagger_eng not found. 估计是因为网络问题,遂改用离线安装的方式。 第一步:下载averaged_perc…...
Spring Scheduling定时任务:从原理到实战的完整指南
1. 项目概述与核心价值在后台系统开发中,定时任务是一个绕不开的经典需求。无论是每天凌晨的数据报表生成、每隔几分钟的缓存刷新,还是每周一次的日志归档,都需要一个稳定、可靠的任务调度机制。早期,很多开发者会选择自己撸袖子干…...
医疗内容出海,为什么总在AI审核里“踩红线“?
同一篇科普文案,在国内平台正常推送,到了海外AI搜索里却被标记为"医疗广告"?最近一位做中医养生出海的朋友向我诉苦:他们精心制作的"节气养生"内容在国内抖音获得百万播放,可当他们把中文版直接翻…...
别再花冤枉钱!Stata 18保姆级安装与版本选择指南(附闲鱼购买避坑)
Stata 18终极选购与安装避坑手册:从学生到研究者的实战指南 当数据分析成为学术研究的标配工具,Stata以其在经济学、社会学等领域的强大功能持续占据着统计软件的头部地位。但对于刚接触实证分析的新手而言,面对官网上四位数的价格标签和IC/S…...
你的打印机“糊”了?可能是半色调没调好!详解HP/佳能/Epson的驱动设置与图像预处理
你的打印机“糊”了?可能是半色调没调好!详解HP/佳能/Epson的驱动设置与图像预处理 当精心修图的照片在打印机上输出后出现奇怪的网格纹路,或是设计稿的渐变区域出现明显色阶断层时,多数用户的第一反应往往是怀疑打印机硬件故障。…...
瑞芯微RK3568与RK3399深度对比:选型指南与实战解析
1. 项目概述:一次关于“芯”的深度对话 最近在选型嵌入式开发板时,很多朋友,尤其是刚入行或准备从传统方案转向国产平台的朋友,都会在瑞芯微的RK3568和RK3399这两颗明星处理器之间纠结。手头正好有迅为基于这两颗芯片的开发板&…...
Prodigal基因预测工具:3天快速掌握原核生物基因发现终极指南
Prodigal基因预测工具:3天快速掌握原核生物基因发现终极指南 【免费下载链接】Prodigal Prodigal Gene Prediction Software 项目地址: https://gitcode.com/gh_mirrors/pr/Prodigal 你是否正在寻找一款快速、准确的原核生物基因预测工具?Prodiga…...
别再手动整理文献了!用Python+Semantic Scholar API,5分钟搞定论文参考文献批量导出
科研效率革命:用PythonSemantic Scholar批量导出参考文献的完整方案 深夜的实验室里,咖啡杯已经见底,而你的文献综述才完成不到三分之一。面对散落在各处的参考文献格式,手动整理的时间远超阅读时间——这是大多数科研工作者的真…...
别再只画区间了!用ECharts的markArea实现单点高亮标注(附完整代码)
突破ECharts标记边界:用markArea实现单点高亮的高级技巧 在数据可视化领域,ECharts凭借其强大的功能和灵活的配置选项,已成为前端开发者和数据分析师的首选工具之一。当我们面对需要突出显示特定数据点的场景时,常规做法是使用mar…...
车标识别平台
车标识别平台选题背景分析随着全球汽车产业的蓬勃发展以及智能交通系统(ITS)的加速建设,车标识别技术作为计算机视觉与人工智能领域的重要应用分支,其市场需求与技术价值日益凸显。开发一个高效、精准的车标识别平台,其…...

