当前位置: 首页 > 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.zskr.cn/news/55368.html

相关文章:

  • Ubuntu22.04.3安装docker、docker compose
  • 2025 年 11 月上料机厂家推荐排行榜,单工位上料机,双工位上料机,四工位上料机,四工位圆盘上料机,自动化设备,工业自动化设备,工业机器人公司推荐
  • 2025年矩形花键轴企业权威推荐榜单:内花键轴/铣花键轴/精密花键轴源头厂家精选
  • 2025年河北租用服务器公司权威推荐榜单:网站服务器租用/服务器主机租用/阿里云服务器租用源头公司精选
  • Oracle 2025年1月关键补丁更新深度解析
  • 高松灯和大石头的故事
  • 2025 11月 易上手建站工具指南:实用性和难点解决分析
  • 2025年EVA废料优质厂家权威推荐榜单:EVA造粒/EVA颗粒/EVA再生造粒料源头厂家精选
  • 2025 初中一对一教育机构口碑排名:高性价比靠谱名单 + 权威测评排行榜
  • 【PCIE725G 】基于 PCIe x16 总线架构的 JFM9VU9P FPGA 高性能数据预处理平台(100%国产化)
  • 2025年疏浚船优质厂家权威推荐榜单:绞吸船/挖沙船/清淤船源头厂家精选
  • 2025 年 11 月高温老化房厂家推荐排行榜,老化室/高温房/熟化房/固化房/恒温恒湿室/恒温房,专业定制与稳定性能深度解析
  • ORACLE故障恢复:启用与禁用事务的并行恢复
  • Qiling使用速记
  • requests-html在风险管理中的应用:风险数据采集与评估报告 - 详解
  • ai-answer
  • 2025 年 11 月纯化水设备厂家推荐排行榜,生物制药纯化水设备,医疗器械纯化水设备,食品纯化水设备,化妆品纯化水设备,制药纯化水设备公司推荐
  • 火山引擎多模态数据湖,破解智能驾驶数据处理瓶颈
  • 2025年交通安全国际学术会议(ICTS 2025)
  • 国王游戏
  • 11.18题解
  • 视频汇聚平台EasyCVR添加设备提示成功,但平台不展示设备的原因排查
  • 2025年车载精酿啤酒设备实力厂家权威推荐榜单:二手精酿啤酒设备/小型精酿啤酒设备/德国精酿啤酒设备源头厂家精选
  • 小波自适应去噪在脑电信号处理MATLAB仿真实现
  • 2025年胶辊硫化罐直销厂家权威推荐榜单:立式硫化罐/硫化罐密封圈/翻新轮胎硫化罐源头厂家精选
  • 基于STM32微控制器的直流无刷电机(BLDC)控制程序实现
  • 素数与素数筛
  • oop-实验3 - fg
  • 2025一对一教育机构口碑排行榜:最新家教辅导平台深度解析
  • 火山引擎Data Agent赋能金融行业,打造智能投顾与精准营销新范式