代码随想录数组 02 1. 209.长度最小的子数组 题目链接 : LeetCode 209.长度最小的子数组
思路 试图暴力破解结果超时,考虑使用滑动窗口
我的解法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 func minSubArrayLen (target int , nums []int ) int { n := len (nums) left, sum := 0 , 0 ans := n + 1 for right := 0 ; right < n; right++ { sum += nums[right] for sum >= target { if right-left+1 < ans { ans = right - left + 1 } sum -= nums[left] left++ } } if ans == n+1 { return 0 } return ans }
Carl 的题解 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 func minSubArrayLen (target int , nums []int ) int { i := 0 l := len (nums) sum := 0 result := l + 1 for j := 0 ; j < l; j++ { sum += nums[j] for sum >= target { subLength := j - i + 1 if subLength < result { result = subLength } sum -= nums[i] i++ } } if result == l+1 { return 0 } else { return result } }
2. 59. 螺旋矩阵 II 题目链接 : LeetCode 59. 螺旋矩阵 II
解法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 func generateMatrix (n int ) [][]int { startx, starty := 0 , 0 count := 1 loop := n/2 matrix := make ([][]int , n) offset := 1 mid := n/2 for i := range matrix { matrix[i] = make ([]int , n) } for loop > 0 { i := startx j := starty for ; j < n - offset; j++{ matrix[i][j] = count count++ } for ; i < n - offset; i++{ matrix[i][j] = count count++ } for ; j > starty; j--{ matrix[i][j] = count count++ } for ; i > startx; i--{ matrix[i][j] = count count++ } startx++ starty++ offset++ loop-- } if n % 2 == 1 { matrix[mid][mid] = count } return matrix }
核心思路
学习资源
更新日期 : 2026-02-12