代码随想录算法训练营第2天 | 209.长度最小的子数组、59.螺旋矩阵II、区间和、开发商购买土地
代码随想录算法训练营第2天 | 209.长度最小的子数组、59.螺旋矩阵II、区间和、开发商购买土地209.长度最小的子数组题目描述解题思路解题过程59.螺旋矩阵II题目描述解题思路解题过程区间和前缀和题目描述解题思路解题过程开发商购买土地题目描述解题思路解题过程209.长度最小的子数组题目链接209.长度最小的子数组题目描述解题思路这是一道滑动窗口的题目。滑动窗口就是不断调节子序列中的起始位置和结束位置得到需要的结果。可以使用双指针达到需求。一个指针作为结束位置一个指针是起始位置在循环中首先通过叠加如果超过了目标值即记录当前长度然后将起始指针向前移动将最开始的那个值给移除。解题过程classSolution{public:intminSubArrayLen(inttarget,vectorintnums){intresultINT_MAX;intsum0;// 记录前几个数的总和intlength0;// 记录子数组长度inti0;intj0;for(j0;jnums.size();j){sumnums[j];while(sumtarget){lengthj-i1;resultresultlength?result:length;sum-nums[i];}}returnresultINT_MAX?0:result;}};59.螺旋矩阵II题目链接59.螺旋矩阵II题目描述解题思路这题主要是想象模拟的过程模拟顺时针画矩阵的过程。关键点在于处理边界问题我们需要想象怎么处理矩阵的四条边卡哥提到左闭右开的办法即每一条边的循环只遍历到最后一个点的前一位然后把最后一个点交给下一条边的遍历。解题过程classSolution{public:vectorvectorintgenerateMatrix(intn){vectorvectorintnums(n,vectorint(n,0));intstx0,sty0;intoffset1;// 边界intcount1;// 元素赋值intloopn/2;// 循环次数intmidn/2;// 只为n是奇数对中间值赋值inti,j;while(loop--){istx;jsty;for(j;jn-offset;j)nums[stx][j]count;for(i;in-offset;i)nums[i][j]count;for(;jsty;j--)nums[i][j]count;for(;istx;i--)nums[i][j]count;stx;sty;offset;// 将循环的矩阵初始点提升相对的边界也得跟着提升这样才能在边的后面多减少}if(n%2){nums[mid][mid]count;}returnnums;}};区间和前缀和题目链接区间和题目描述解题思路典型的前缀和题目直接套公式前缀和的初始化s[n] s[n-1[ a[n]; 区间和a b即S s[b] - s[a-1];解题过程#includeiostreamusingnamespacestd;constintN100010;intn;inta[N],s[N];intc,b;intmain(){scanf(%d,n);for(inti1;in;i){scanf(%d,a[i]);}for(inti1;in;i){s[i]s[i-1]a[i];}while(cincb){if(c0)printf(%d\n,s[b1]);elseprintf(%d\n,s[b1]-s[c]);}return0;}开发商购买土地题目链接开发商购买土地题目描述解题思路涉及二维数组的前缀和代码随想录里面的代码我没咋看明白感觉比较复杂我使用的是y总的思路。首先也是套公式二维数组前缀和公式s[ i ][ j ] s[ i - 1 ][ j ] s[ i ][ j - 1 ] - s[ i - 1 ][ j - 1 ] a[ i ][ j ]二维数组区间的值S s[ x2 ][ y2 ] - s[ x1 - 1 ][ y2 ] - s[ x2 ][ y1 - 1] s[x1 - 1] [ y1 - 1 ]这道题他的土地划分是简单的一道切所以当得到了二维数组的前缀和之后就可以直接循环每一列和每一行将总和减掉这一行切掉的值再加上由于是比较差值所以减掉一次是另一半的和那么减掉两次就是差值了所以使用绝对值函数abs来判断差值大小。解题过程#includeiostream#includestdlib.h#includeclimitsusingnamespacestd;constintN110;intn,m;inta[N][N],s[N][N];intmin(intx,inty){returnxy?x:y;}intmain(){scanf(%d%d,n,m);for(inti1;in;i){for(intj1;jm;j){scanf(%d,a[i][j]);}}for(inti1;in;i){for(intj1;jm;j){s[i][j]s[i-1][j]s[i][j-1]-s[i-1][j-1]a[i][j];}}intansINT_MAX;for(inti1;in;i){intxabs(s[n][m]-2*s[i][m]);ansmin(ans,x);}for(intj1;jm;j){intxabs(s[n][m]-2*s[n][j]);ansmin(ans,x);}printf(%d,ans);return0;}

相关新闻

2026.3.6~7 - 工作中的问题总结

2026.3.6~7 - 工作中的问题总结

本来是打算每日都总结一下工作中遇到的问题,可惜昨天并没有遇到什么印象深刻的问题,便忘记总结了。在6号,我基本上一天都在熟悉并使用各项检测仪器,比如恒压源仪器,单相阻性负载仪器,三相电压源仪器&#x…

2026/7/5 2:16:11 阅读更多 →
远程办公两年了:作为一名AI训练师,我是如何高效工作并平衡生活的

远程办公两年了:作为一名AI训练师,我是如何高效工作并平衡生活的

远程办公两年,从最初的“自由散漫、效率低下”,到如今的“高效产出、张弛有度”,作为一名AI训练师,我走过不少弯路,也摸索出了一套适配AI训练工作特性的远程办公模式。AI训练工作,既要专注标注数据、优化Pr…

2026/5/17 9:17:15 阅读更多 →
《3小时搞定1天工作?AI办公自动化实战》

《3小时搞定1天工作?AI办公自动化实战》

3小时搞定1天工作?AI办公自动化实战 在很多公司里,程序员和职场人每天都在做同一件事: 下载 Excel 报表整理数据生成 Word / PPT发送邮件更新系统数据重复填表 这些事情有一个共同点: 重复、耗时、没有技术含量。 很多人一天…

2026/7/3 15:54:25 阅读更多 →

最新新闻

开启我的编程学习之路

开启我的编程学习之路

一、简单自我介绍大家好,我是一名计算机专业大一新生,目前刚开始接触计算机底层基础和C语言编程。在此之前,我几乎没有代码编写经验,属于零基础编程小白。我性格耐心、做事喜欢循序渐进,擅长按计划完成学习任务&#x…

2026/7/5 3:31:02 阅读更多 →
分享最新Navicat安装教程(附免费文件)

分享最新Navicat安装教程(附免费文件)

目录 前言 软.件.下.载 安装教程(新手保姆级) 结束语 前言 大家好,我是 Ktiiy 学姐👋。刚入驻 CSDN,以后会持续更新,给大家免费零基础开发环境搭建、项目源码、避坑教程、面试技巧等!点关注…

2026/7/5 3:31:02 阅读更多 →
iOS27 App Intents 实战

iOS27 App Intents 实战

iOS27 App Intents 实战:新版 Siri 快捷指令接入全流程教程随着WWDC2026的正式落幕,苹果推送的iOS27带来了Siri架构的全面重构,其中最核心的变化就是正式弃用SiriKit,将App Intents确立为第三方应用接入Siri的唯一官方框架。对于开…

2026/7/5 3:29:02 阅读更多 →
Transformer 英中翻译实战:PyTorch 从零实现,BLEU 值提升 15% 的 3 个关键调参技巧

Transformer 英中翻译实战:PyTorch 从零实现,BLEU 值提升 15% 的 3 个关键调参技巧

Transformer 英中翻译实战:PyTorch 从零实现,BLEU 值提升 15% 的 3 个关键调参技巧在机器翻译领域,Transformer 架构已经成为事实上的标准。本文将带你从零开始实现一个完整的英中翻译模型,并分享三个经过实战验证的关键调参技巧&…

2026/7/5 3:27:02 阅读更多 →
利用RAG构建品牌AI知识库:六步SOP提升技术影响力

利用RAG构建品牌AI知识库:六步SOP提升技术影响力

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 你的品牌、产品、技术文档,是否正在被 AI 遗忘?当开发者向 ChatGPT、Claude 或国内大模型提问“如何集成 XX S…

2026/7/5 3:25:01 阅读更多 →
DesignWare® Cores LPDDR5/4/4x PHY for TSMC12FFC18 Databook的中文版

DesignWare® Cores LPDDR5/4/4x PHY for TSMC12FFC18 Databook的中文版

DesignWare Cores LPDDR5/4/4x PHY for TSMC12FFC18 Databook的中文版,dwc_lpddr54_phy_tsmc12ffc18- Product Code: D774-0,PHY Version: 2.40a July 8, 2021,是DW LPDDR5/4 PHY在TSMC12FFC工艺下的技术数据手册,为芯片设计者提供…

2026/7/5 3:25:01 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻