做网站推广怎么跟客户沟通贵州安顺建设主管部门网站
做网站推广怎么跟客户沟通,贵州安顺建设主管部门网站,济宁竞价托管,建设企业网站的哪家好209.长度最小的子数组
题目链接209. 长度最小的子数组 - 力扣#xff08;LeetCode#xff09;
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] #xff0c;并返…209.长度最小的子数组题目链接209. 长度最小的子数组 - 力扣LeetCode给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的子数组[numsl, numsl1, ..., numsr-1, numsr]并返回其长度。如果不存在符合条件的子数组返回0。题解要求主要是两点1总和大于等于target2长度最小这里其实有点像一排数字找一个矩形窗口可以使矩形窗口内的数字和不小于某一值同时矩形的长度最小此时长度为4长度仍为4长度变为3长度还是3此时最小长度出现了是2要控制矩形的长度大小需要用左右指针控制左右边因此就形成了一个滑动窗口并且左指针是逐一向右移动的(整个数组总和小于target值情况除外也就是题目中“不存在符合条件的子数组返回0”的情况)即在满足条件时尽可能右移收缩窗口以找到最短长度滑动窗口-双指针class Solution: def minSubArrayLen(self, target: int, nums: List[int]) - int: i 0 nsum 0 numslen float(inf) # 设为无穷大 for j in range(len(nums)): nsum nsumnums[j] while nsum target: numslen min(numslen, j-i1) nsum - nums[i] i1 # 如果numslen仍为无穷大说明数组总和小于target return 0 if numslen float(inf) else numslen59.螺旋矩阵II题目链接59. 螺旋矩阵 II - 力扣LeetCode给你一个正整数n生成一个包含1到n2所有元素且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。这个觉得题解写的很清楚按照螺旋顺序依次“从左到右从上到下从右到左从下到上”填数字num数字逐个加一终止条件就是num达到n*nclass Solution: def generateMatrix(self, n: int) - List[List[int]]: l,r,t,b 0,n-1,0,n-1 mat [[0 for _ in range(n)] for _ in range(n)] num, tar 1, n*n while numtar: for i in range(l, r1): mat[t][i] num num1 t1 for i in range(t, b1): mat[i][r] num num1 r-1 for i in range(r,l-1,-1): mat[b][i] num num1 b-1 for i in range(b, t-1, -1): mat[i][l] num num1 l1 return mat