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

做网站相册做网站 什么语言

做网站相册,做网站 什么语言,十大购物网站排名,南京开发1、这种题目是对代码熟练度考察,模拟顺时针建立或访问矩阵,需要注意矩阵是否为方阵 2、具体思路:以圈数为循环条件,每一圈都坚持左闭右开的区间规则;当小的行列值为奇数,最后一圈为一行或一列或一个数字的不…

1、这种题目是对代码熟练度考察,模拟顺时针建立或访问矩阵,需要注意矩阵是否为方阵
2、具体思路:以圈数为循环条件,每一圈都坚持左闭右开的区间规则;当小的行列值为奇数,最后一圈为一行或一列或一个数字的不完整圈
3、细节:把 起始圈的上下左右边界 和 i,j标记矩阵的赋值位置 放在圈数循环外部,以方便完整圈数遍历完后使用这些变量;同时,圈数循环内部的最后要对这些变量进行更新

59. 螺旋矩阵 II

from typing import List
'''
59. 螺旋矩阵 II
题目描述:给你一个正整数 n ,生成一个包含 1 到 n^2 的所有元素,且元素按顺时针顺序螺旋排列的 n i n 正方形矩阵 matrii 。
示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]
题眼:代码熟练度考察,模拟顺时针建立矩阵,注意是方阵,复杂度降低了些
思路:以圈数为循环条件,每一圈都坚持左闭右开的区间规则;当n为奇数,恰好留了一个中心元素待更新
注意把 起始圈的上下左右边界 和 i,j标记矩阵的赋值位置 放在圈数循环外部,以方便圈数遍历完后使用这些变量;同时,圈数循环内部的最后要对这些变量进行更新
'''class Solution:def generatedMatrii(self, n: int) -> List[List[int]]:result = [[0] * n for _ in range(n)]# 以圈数为循环条件,每一圈都坚持左闭右开的区间规则count = 1up, down, left, right = 0, n - 1, 0, n - 1  # 起始圈的上下左右边界i, j = up, left  # i,j标记矩阵的赋值位置,初始值为左上角坐标for _ in range(n // 2):  # 总圈数为 n // 2while i == up and j < right:  # 上result[i][j] = countj += 1count += 1while i < down and j == right:  # 右result[i][j] = counti += 1count += 1while i == down and j > left:  # 下result[i][j] = countj -= 1count += 1while i > up and j == left:  # 左result[i][j] = counti -= 1count += 1# 更新圈的上下左右边界up, down, left, right = up + 1, down - 1, left + 1, right - 1i, j = up, left  # i,j标记矩阵的赋值位置,初始值为左上角坐标# 当n为奇数,恰好留了一个中心元素待更新if n % 2 == 1:result[up][left] = countreturn resultif __name__ == "__main__":obj = Solution()while True:try:n = int(input().strip().split('=')[1])print(obj.generatedMatrii(n))except EOFError:break

54. 螺旋矩阵

from typing import List
'''
54. 螺旋矩阵
题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]
题眼:代码熟练度考察,模拟顺时针返回矩阵元素,注意不是方阵,有点复杂度
思路:以圈数为循环条件,每一圈都坚持左闭右开的区间规则;当小的行列值为奇数,最后一圈为一行或一列或一个数字的不完整圈
注意把 起始圈的上下左右边界 和 i,j标记矩阵的赋值位置 放在圈数循环外部,以方便圈数遍历完后使用这些变量;同时,圈数循环内部的最后要对这些变量进行更新
'''class Solution:def spiralOrder(self, matrix: List[List[int]]) -> List[int]:m, n = len(matrix), len(matrix[0])result = []# 以圈数为循环条件,每一圈都坚持左闭右开的区间规则up, down, left, right = 0, m - 1, 0, n - 1  # 起始圈的上下左右边界i, j = up, left  # i,j标记矩阵的赋值位置,初始值为左上角坐标for _ in range(min(m, n) // 2):  # 总圈数为 小的行列值除以2while i == up and j < right:  # 上result.append(matrix[i][j])j += 1while i < down and j == right:  # 右result.append(matrix[i][j])i += 1while i == down and j > left:  # 下result.append(matrix[i][j])j -= 1while i > up and j == left:  # 左result.append(matrix[i][j])i -= 1# 更新圈的上下左右边界up, down, left, right = up + 1, down - 1, left + 1, right - 1  # 起始圈的上下左右边界i, j = up, left  # i,j标记矩阵的赋值位置,初始值为左上角坐标# 当小的行列值为奇数,最后一圈为一行或一列或一个数字的不完整圈if min(m, n) % 2 == 1:if up == down and left == right:  # 一个数字result.append(matrix[up][left])elif up != down and left == right:  # 一列,对应的列索引为leftfor k in range(up, down + 1):result.append(matrix[k][left])elif up == down and left != right:  # 一行,对应的行索引为upfor k in range(left, right + 1):result.append(matrix[up][k])return resultif __name__ == "__main__":obj = Solution()while True:try:in_line = input().strip().split('=')matrix = []for row in in_line[1].strip()[1: -1].split(']')[: -1]:matrix.append([int(n) for n in row.split('[')[1].split(',')])print(obj.spiralOrder(matrix))except EOFError:break
http://www.yayakq.cn/news/932394/

相关文章:

  • 太原建设工程信息网站建设通网站原理
  • 网站做404好处企业主页包含
  • 手机版网站建设开发网站排名如何稳定
  • 网站建设效益工商红盾网查询系统
  • 企业网站建设请示木材模板.网站
  • 做照片相册最好的网站 网站开发
  • 模拟ip访问网站6网站免费建站
  • 广西南宁电商网站建设正规免费发布信息网站
  • 受欢迎的手机网站建设安康市集约化平台
  • 教育培训机构网站模板要做网站
  • 美食网站开发开题报告社区建设网站
  • 租一个国外的服务器 建设网站学校网站总务建设
  • 上饶市建设局培训网站盐城做网站哪家好
  • 网站建设工作简介深圳企业建站设计公司
  • 肇庆市seo网络推广seo 网站优化
  • 建筑设计类英文的网站seo网站优化教程
  • 大连手机自适应网站建设公司随手app怎么转版
  • 烟台电商网站建设网站建设实践报告3000字
  • 泰州网站设计公司wordpress不能分类
  • 网站建设需要注册42类吗优化网站的目的
  • 网站移动端是什么广州公关公司招聘
  • 高端礼品定制网站高端网站设计高端网站制作
  • 网站 优点WordPress主题设置数据库
  • 专做艺术圈的网站图片滤镜网站开发
  • 模板手机网站建设淘宝上网站开发
  • 怎么把网站排名排上去手机浏览器网址导航
  • 企业网站设计与实现论文做app的模板下载网站有哪些内容
  • 做网站客户尾款老不给怎么办芜湖做网站的公司
  • 网站歌曲代码网站源码在哪看
  • 网站职业技能培训学校设计师必逛网站排名