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

中国风 网站模板企业建网站设计

中国风 网站模板,企业建网站设计,创意设计是什么,建筑工程网校排行榜目录 209. 长度最小的子数组1、题目描述2、思路3、code4、复杂度分析 LC59 螺旋矩阵 II1、题目描述2、思路3、code4、复杂度分析 209. 长度最小的子数组 题目链接:209 1、题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于…

目录

  • 209. 长度最小的子数组
    • 1、题目描述
    • 2、思路
    • 3、code
    • 4、复杂度分析
  • LC59 螺旋矩阵 II
    • 1、题目描述
    • 2、思路
    • 3、code
    • 4、复杂度分析

209. 长度最小的子数组

题目链接:209

1、题目描述

给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0。
示例 1:
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

2、思路

1️⃣ 暴力法,两个for循环嵌套,时间复杂度 O ( n 2 ) O(n^2) O(n2)
2️⃣ 题目基本是根据连续子序列的情况,不断调节子序列的起始和终止位置:滑动窗口
模板:

3、code

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:# 找一个数组的满足条件的最短或者最长连续子数组:滑动窗口minlen = float('inf')start = 0sum_sub = 0for end in range(0,len(nums)):sum_sub += nums[end]while sum_sub >= target:minlen = min(minlen, end-start+1)sum_sub -= nums[start]start += 1if minlen <= len(nums):return minlenelse:return 0

4、复杂度分析

  • 时间复杂度:
    每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)
  • 空间复杂度:没有创建数组 O ( 1 ) O(1) O(1)

LC59 螺旋矩阵 II

题目链接:59

1、题目描述

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix
示例 1:在这里插入图片描述

2、思路

要控制每次循环的区间范围(循环不变量)
按照左闭右开的原则,来画一圈,大家看一下:
在这里插入图片描述

3、code

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:# 首先先初始化一个全是0的nxn二维矩阵mat = [[0 for _ in range(n)] for _ in range(n)]# 定义每一圈的起始点坐标start_x = 0start_y = 0# 定义表示不同圈的每一条边的倒数第二个节点的偏移量# 比如第1圈是j = (n-1) - 1# 第2圈就是j = (n-1) - 2offset = 1# 定义要往矩阵中填入的数count = 1loop = n //2# 循环开始for time in range(0,loop):# 填充上行从左到右:横坐标不变且是start_x,纵坐标从start_y到(n - 1) - 1for j in range(start_y, n - offset):# 因为range“顾头不顾腚”所以可以少写一个-1mat[start_x][j] = countcount += 1# 填充右列从上到下:横坐标从start_x到(n-1)-offset,纵坐标不变且是上行最后一个元素的坐标加一(j = n - offset)                # 此时到达了上行的倒数第二个元素(start_x,j = (n-1)-offset)# 那么右列的第一个元素就是(start_x,n - offset)for i in range(start_x, n - offset):mat[i][n - offset] = countcount += 1# 填充下行从右到左:横坐标不变是上列最后一个元素的横坐标加一(i = n - offset),纵坐标从上一次的j = n - offset 一直减到start_y + 1for j in range(n - offset, start_y, -1):mat[n - offset][j] = countcount += 1# 填充左列从下到上:横坐标从上一次的i = n - offset一只减到start_x + 1,纵坐标不变就是上一行最后一个元素的纵坐标减一(start_y)for i in range(n - offset, start_x, -1):mat[i][start_y] = countcount += 1# 更新起始点坐标start_x += 1start_y += 1offset += 1mid = n // 2if n%2 != 0:mat[mid][mid] = count   return mat    

4、复杂度分析

1️⃣ 时间复杂度: n / 2 ∗ 4 ∗ ( n − k ) = n 2 n/2 * 4 *(n-k) = n^2 n/24(nk)=n2
2️⃣ 空间复杂度:1

http://www.yayakq.cn/news/995824/

相关文章:

  • 工业和信息化部网站备案系统是什么意思嘉兴网站托管
  • 餐饮外哪个网站做推广wordpress app中文版下载
  • 烟台网站建设设计百度推广网页版
  • 网站最新一次改版时间什么意思php精品网站建设
  • 同信.长春网站建设网站开发公司是干嘛的
  • 5118站长网站衡水seo优化
  • 丰台做网站wordpress名字
  • 网站设计制作在哪能看wordpress怎么添加论坛
  • 网站如何创建首页装潢设计费用
  • iis 发布asp网站江门网站建设方案外包
  • 受欢迎的菏泽网站建设外国网站的浏览器下载
  • 机械设计制造及其自动化圳建设网站直播回放老卡怎么回事
  • 攀枝花三线建设网站中信建设有限责任公司张晞
  • 建筑工程网是什么网站企业手机网站开通
  • 网站到期忘记续费如何调整网站板块位置
  • 阿里云服务器搭网站同时做网盘北京商城网站建设
  • 烟台响应式网站建设域名注册哪个最好
  • 住房和城乡建设厅网站办事大厅行业发展趋势
  • 重庆网站备案快备案ip 查询网站查询系统
  • 深圳住房和城乡建设局网站首页银川seo优化
  • 做网站码怎么做简单的网站首页
  • 网站后台从哪里进去系统定制
  • 系部 网站建设方案网站建设合同中英文
  • 免费psd素材网站邱杰wordpress
  • 做外贸网站的好处汝州市文明建设网站
  • 廊坊网站制作策划建设钓鱼网站
  • html的网页代码网站如何做进一步优化
  • 美食网站怎样做锅包肉站长之家网站
  • 做php网站前端价格网站营销案例展示
  • 淄博阿雷网站建设wordpress问答