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

[豪の算法奇妙冒险] 代码随想录算法训练营第二天 | 209-长度最小的子数组、59-螺旋矩阵II

代码随想录算法训练营第二天 | 209-长度最小的子数组、59-螺旋矩阵II


LeetCode209 长度最小的子数组

题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/

文章讲解:https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html

视频讲解:https://www.bilibili.com/video/BV1tZ4y1q7XE

​ 一开始用的两层for循环,尝试暴力遍历求解,但最后不出意料的超时了:

image-20251120145641692

class Solution {public int minSubArrayLen(int target, int[] nums) {int minlen = nums.length + 1;for(int i = 0;i < nums.length;i++){int sum = 0;int curlen = 0;for(int j = i;j < nums.length;j++){sum += nums[j];curlen++;if(curlen >= minlen || sum >= target){break;}}if(sum >= target && curlen < minlen){minlen = curlen;}}if(minlen > nums.length){return 0;}else{return minlen;}}
}

​ 然后看了讲解视频,发觉使用双指针滑动窗口的思路解决这道题会更加合适

​ 用滑动窗口,可以用一个for代替暴力求解的两个for

​ 关键在于确定如何移动起始位置,然后持续向后移动,更新滑动窗口的大小

image-20251120145920114

class Solution {public int minSubArrayLen(int target, int[] nums) {int minlen = nums.length + 1;int i = 0;int sum = 0;for(int j = 0;j < nums.length;j++){sum += nums[j];while(sum >= target){int curlen = j-i+1;if(minlen > curlen){minlen = curlen;}sum -= nums[i];i++;}}if(minlen > nums.length){return 0;}else{return minlen;}}
}

LeetCode59 螺旋矩阵II

题目链接:https://leetcode.cn/problems/spiral-matrix-ii/

文章讲解:https://programmercarl.com/0059.%E8%9E%BA%E6%97%8B%E7%9F%A9%E9%98%B5II.html

视频讲解:https://www.bilibili.com/video/BV1SL4y1N7mV/

​ 这题就是要明确循环不变量,确定好一套边界处理规则

​ 把边界条件搞清晰,这题也就迎刃而解了

image-20251120162931222

class Solution {public int[][] generateMatrix(int n) {int startI = 0,startJ = 0,offset = 1;int cnt = 1;int loop = n/2;int[][] result = new int[n][n];while(true){loop--;if(loop < 0){break;}int i = startI;int j = startJ;for(;j < n-offset;j++){result[startI][j] = cnt++;}for(;i < n-offset;i++){result[i][n-offset] = cnt++;}for(;j > startJ;j--){result[n-offset][j] = cnt++;}for(;i > startI;i--){result[i][startJ] = cnt++;}startI++;startJ++;offset++;}if(n%2 == 1){result[n/2][n/2] = cnt;}return result;}
}

扩展题目:KamaCode58 区间和、KamaCode44 开发商购买土地

扩展题目留着周末再另外做...

http://www.jsqmd.com/news/45728/

相关文章:

  • Ubuntu22.04.3安装docker、docker compose
  • 2025 年 11 月上料机厂家推荐排行榜,单工位上料机,双工位上料机,四工位上料机,四工位圆盘上料机,自动化设备,工业自动化设备,工业机器人公司推荐
  • 20251120
  • es 线程池状态
  • 12种k线图
  • yield 模拟 async/await
  • 2025年矩形花键轴企业权威推荐榜单:内花键轴/铣花键轴/精密花键轴源头厂家精选
  • 2025年工业凉水塔制造企业权威推荐榜单:水冷却塔/冷却塔冷水塔/方形冷却塔源头厂家精选
  • 开源AI工具MindGridAI
  • 2025年机场广告品牌口碑大比拼,前三名实力惊人!电梯视频广告/高铁广告/地铁广告/户外LED广告/户外农村墙体/主流网络媒体品牌有哪些
  • 高效构建 CHI 架构
  • 还在手动改数据库?Flyway 自动化迁移实战指南 - lxr
  • 2025年河北租用服务器公司权威推荐榜单:网站服务器租用/服务器主机租用/阿里云服务器租用源头公司精选
  • “入站规则”(Inbound Rules)和“出站规则”(Outbound Rules)
  • 毕业论文选题攻略:如何快速锁定高质量研究方向
  • 四川靠谱的小红书代运营公司推荐,小红书推广/网络推广/网络公关/抖音代运营/抖音推广/网络营销/网站建设小红书代运营公司找哪家
  • SQL Server Job 操作
  • 洛谷题单指南-组合数学与计数-CF1332E Height All the Same
  • Oracle 2025年1月关键补丁更新深度解析
  • 2025年合金热喷涂加工厂权威推荐榜单:耐腐合金涂层工艺/合金涂层加工/合金涂层喷涂工厂服务商精选
  • ESP32-LVGL 开发笔记(二):设备注册
  • 2025年成都火锅必吃榜TOP10,本地人强推!美食/地摊火锅/附近火锅/重庆火锅/牛肉火锅/成都火锅/老火锅/社区火锅/火锅品牌排行榜单
  • 高松灯和大石头的故事
  • 2025 11月 易上手建站工具指南:实用性和难点解决分析
  • 同样都是36岁,同样都是面临人生的抉择,《岁月》中的梁志远放下清高觉醒了,我呢,如何在社会这个大染缸里面混呢?
  • 2025 年 11 月冲压机械手厂家推荐排行榜,冲床机械手/摆臂机械手/二次元拉伸/三次元冲压/模内平移/多工位冲压/四轴上下料/自动拆垛/新能源电池壳拉伸/双臂机械手/全自动码垛机厂家精选
  • 2025年EVA废料优质厂家权威推荐榜单:EVA造粒/EVA颗粒/EVA再生造粒料源头厂家精选
  • 2025 初中一对一教育机构口碑排名:高性价比靠谱名单 + 权威测评排行榜
  • C#AI系列(1):深度学习项目构建及实战TensorFlow准备篇
  • 详细介绍:2026计算机毕业设计课题推荐