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

相关文章:

  • 虚拟机5
  • CF2048H Kevin and Strange Operation
  • Visual Studio 离线安装0x80131509
  • Oracle备份恢复:backup as copy保留文件名不变化,只更改路径名
  • 读书笔记:数据库中的预连接神器:位图连接索引
  • 飞算JavaAI:专为Java开发者打造的智能编程革命 - 实践
  • 故障处理:CRS无法随操作系统自动启动故障案例分享
  • typeof()
  • 详细介绍:【C++】C++类和对象—(中)
  • 关于 “Thinking Machines Lab首次发长文” 的一些知识的学习和补充
  • python编程练习(Day4) - 教程
  • CF1630F 题解 | 网络流
  • 攻防世界-secret-galaxy-300 - xxx
  • 实用指南:LeetCode 面试经典 150_哈希表_单词规律(41_290_C++_简单)
  • 代码随想录算法训练营第二天 | leetcode 209
  • mpv硬件解码
  • 2025.9.78——卷6-8选择
  • 好烦
  • 用 Go 语言与 Tesseract OCR 识别英文数字验证码
  • FreeRTOS和LVGL组合使用教程
  • Linux中 sed命令忽略大小写匹配
  • VISA Resource name
  • 交叉编译openharmony版本的gdb
  • 高数
  • office2024免费永久激活版下载安装教程:含激活步骤 + 一键安装包下载
  • 05-条件查询
  • 完整教程:液氮低温恒温器的应用领域
  • 轮转数组-leetcode
  • CF1864G Magic Square
  • OI TRICKS