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

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

209.长度最小的子数组

思路:快慢指针的思想,当快指针一直移动的时候,那么数列一定是递增的,且我们要求的是连续的数组,所以我们其实可以一次性用一个for就给全部遍历完成。当我们这个区间的值大于了target,我们就可以开始移动我们的慢指针了,直到我们的慢指针到达快指针的位置。

注意的点:一个是我一开始犯的错误,将最外层那个快指针的移动给写成if了,其实用for一直向前移动快指针,并且注意,如果慢指针更新完之后,要把快指针回拨,因为你此时如果符合了那个len,但是实际上你是没有更新到min_len里面的,你要回拨一下,然后才能到存会min_len的那个逻辑。还有就是快指针遍历完了之后,记得要把慢指针移动到快指针的位置,以免漏掉的情况。

题解:

func minSubArrayLen(target int, nums []int) int {min_len := 100000 + 1i := 0j := 0nums_len := len(nums)sum := nums[0]for j < nums_len-1 {for sum < target && j < nums_len-1 {j++sum += nums[j]//println(sum)}for sum >= target && i <= j {now_len := j - i + 1if now_len < min_len {//println(j)//println(i)min_len = j - i + 1}sum -= nums[i]i++sum -= nums[j]j--}}//for sum >= target && i <= j {now_len := j - i + 1if now_len < min_len {min_len = j - i + 1}sum -= nums[i]i++}if min_len == 1e5+1 {return 0}return min_len
}

59. 螺旋矩阵 II

思路:就是一个大模拟,其实本质不难,就考一个细节问题。

注意的点:就是loop的求取,想成转一圈,然后就会少两列,把n列消耗完就没有了,故loop = n/2 ,然后要注意边界问题 以及奇数的时候最中心nums[n/2][n/2],要给赋值index。

题解:

func generateMatrix(n int) [][]int {index := 1startx := 0starty := 0offset := 1loop := n / 2//初始化nums数组nums := make([][]int,n)for i := 0;i < n;i++{nums[i] = make([]int,n)}for loop > 0{i, j := startx, startyfor j < n - offset{nums[i][j]= indexindex++j++}for i < n - offset{nums[i][j]= indexindex++i++} for j > starty{nums[i][j]= indexindex++j--}for i > startx{nums[i][j]= indexindex++i--}offset++loop--startx++starty++}if n % 2 != 0{ nums[n/2][n/2]= index }return nums
}

 

 

http://www.hskmm.com/?act=detail&tid=8891

相关文章:

  • mac更新or安装homebrew失败
  • Typescript中闭包的原理 - 教程
  • CF2048H Kevin and Strange Operation
  • Hadoop本地库加载问题分析与解决方案
  • GO基础总结
  • Visual Studio 离线安装0x80131509
  • Oracle备份恢复:backup as copy保留文件名不变化,只更改路径名
  • 读书笔记:数据库中的预连接神器:位图连接索引
  • 故障处理:CRS无法随操作系统自动启动故障案例分享
  • 02020401 EF Core基础01-EF Core简介和开发环境搭建、实体类、配置类、继承DbContex的类、Migration包的使用
  • 专用通路方式
  • typeof()
  • 【未完成】2025.9 做题记录
  • 2025.8 做题记录
  • 关于 “Thinking Machines Lab首次发长文” 的一些知识的学习和补充
  • CF1630F 题解 | 网络流
  • 攻防世界-secret-galaxy-300 - xxx
  • 实用指南:LeetCode 面试经典 150_哈希表_单词规律(41_290_C++_简单)
  • 数据库
  • 代码随想录算法训练营第二天 | leetcode 209
  • mpv硬件解码
  • 2025.9.78——卷6-8选择
  • 关于pytorch的读书报告
  • Emacs 折腾日记(三十)——打造C++ IDE 续
  • 数据结构 项目一
  • 好烦
  • 用 Go 语言与 Tesseract OCR 识别英文数字验证码
  • FreeRTOS和LVGL组合使用教程
  • Codeforces 1646 记录
  • 综合与实现流程【p3】--(DSP-存储)优化PS系统集成