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

怎么开网站 第一步怎么做建设银行网银登录

怎么开网站 第一步怎么做,建设银行网银登录,施工企业管理会计实施方案,知东莞app下载4.LC 旋转矩阵(中等,学习) 面试题 01.07. 旋转矩阵 - 力扣(LeetCode) 思想: 法一: 额外空间数组来回赋值拷贝 法二: 1.翻转90度得到等式a[j][n-i-1]a[i][j],但是会改变a[j][n-i-1]原始值,再去看该位置变到哪一位置 分析可得,4个…
4.LC 旋转矩阵(中等,学习)

面试题 01.07. 旋转矩阵 - 力扣(LeetCode)

思想:

法一:
额外空间数组来回赋值拷贝
法二:
1.翻转90度得到等式a[j][n-i-1]=a[i][j],但是会改变a[j][n-i-1]原始值,再去看该位置变到哪一位置
分析可得,4个位置翻转90度就是4个位置轮换赋值,得到公式
在这里插入图片描述
所以问题变成利用temp变量完成4项原地交换
2.接下来分析i和j的遍历范围,由上述4个位置得,只要遍历1个区域位置即可,所以把正方形划分成4份,取左上角区域,但是不知道n是奇还是偶,所以要分奇偶讨论
在这里插入图片描述
偶数i,j:[0,n/2)
在这里插入图片描述
奇数:i:[0,(n+1)/2),j:[0,n/2) 所以综合可得,i:i:[0,(n+1)/2),j:[0,n/2)
法三:
1.先水平翻转:a[i][j]=a[n-i-1][j],遍历范围:i:[0,n/2),j:[0,n)
2.然后再沿着主对角线翻转:a[i][j]=a[j][i],遍历范围:i:[0,n),j:[0,i)

代码

c++:
法一:

class Solution {
public:void rotate(vector<vector<int>>& matrix) {int n = matrix.size();auto temp = matrix;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {temp[i][j] = matrix[n - j - 1][i];}}matrix = temp;}
};

法二:

class Solution {
public:void rotate(vector<vector<int>>& matrix) {int n = matrix.size();for (int i = 0; i < (n + 1) / 2; i++) {for (int j = 0; j < n / 2; j++) {int temp = matrix[i][j];matrix[i][j] = matrix[n - j - 1][i];matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1];matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1];matrix[j][n - i - 1] = temp;}}}
};

法三:

class Solution {
public:void rotate(vector<vector<int>>& matrix) {int n = matrix.size();for (int i = 0; i < n / 2; i++) {for (int j = 0; j < n; j++) {swap(matrix[i][j], matrix[n - i - 1][j]);}}for (int i = 0; i < n; i++) {for (int j = 0; j < i; j++) {swap(matrix[i][j], matrix[j][i]);}}}
};

python:
法一:

class Solution:def rotate(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""n = len(matrix)temp=[[0]*n for _ in range(n)]# or temp = [row[:] for row in matrix]for i in range(n):for j in range(n):temp[i][j]=matrix[n-j-1][i]matrix[:]=temp

python对象本质是对象的指针,而不是独立存值的容器。
1.替换原始矩阵
a=b;:让a指向b指向的对象,改变a的同时也改变b的内容
所以列表改变值需要:matrix[:]=temp;
2.深拷贝二维列表
temp=matrix[:]只复制了外层,内层仍共享
temp=[[0]*n for _ in range(n)]创建一个新的nxn数组
temp=[row[:] for row in matrix]才深拷贝二维数组matrix
法二:

class Solution:def rotate(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""n = len(matrix)for i in range(n // 2):for j in range((n + 1) // 2):temp = matrix[i][j]matrix[i][j] = matrix[n - j - 1][i]matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]matrix[j][n - i - 1] = temp

整数除法是//,向下取整
法三:

class Solution:def rotate(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""n = len(matrix)for i in range(n // 2):for j in range(n):matrix[i][j], matrix[n - i - 1][j] = matrix[n - i - 1][j], matrix[i][j]for i in range(n):for j in range(i):matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]

多变量同时赋值

相似题

48. 旋转图像 - 力扣(LeetCode)

http://www.dtcms.com/wzjs/612440.html

相关文章:

  • 怎样用自己的服务器建设网站怎样在百度搜到自己的网站
  • 企业网站规划与建设论文成都网站开发价格
  • 做电影网站需要注意什么做网站的职员称呼什么
  • 深圳市公司网站建设服务机构购物网站的建设费用
  • 手机网站轮播图wordpress 制作网站
  • 自助建设视频网站海东网站建设公司
  • 企业网站管理系统 cms外贸网站优化公司
  • 电子商务网站建设与管理是什么用阿里云和大淘客做网站
  • 中建八局土木建设有限公司网站做运营的具体做什么
  • 怎么挑选网站建设公司wordpress 下载超链接
  • 阿里云 建设网站找人做网站如何担保
  • 央美老师做的家具网站最快做网站的语言
  • 国外网站为什么不用备案山东省招投标信息网
  • 英山县城乡建设规划局网站学校网站资源建设
  • 网站建设 天秀网络网站建设销售客户疑问
  • 建设农业网站的论文网站怎么制作教程
  • 做暧小说在线观看网站写网站教程
  • 如何查询一个网站所属的主机沧县做网站价格
  • 网站 备案 初审百度精准获客平台
  • 口碑最好的网站建设搭建起什么样的平台
  • 外贸大楼济南做网站优化
  • 专业酒店建设信息网站网站如何做下载文档
  • 做服装有哪些好的网站有哪些开发一款视频app多少钱
  • 创建网站站点大气网络公司网站源码
  • 网站建设和维护费怎么摊销建设部网站核对编号
  • 高性能网站建设书籍济阳做网站多少钱
  • 网站开发+兼职项目ico众筹WordPress
  • 英文网站制作公司哪家好html5开发手机网站教程
  • 巴中建设银行网站创新驱动发展战略方针
  • 做一个公司的门户网站多少钱微信小程序介绍