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

做网站 如何 挣钱广州品牌网站建设 优美

做网站 如何 挣钱,广州品牌网站建设 优美,石家庄网络科技有限公司,抚顺网络推广48. 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 : 输入:matrix [[5,1,9,11],[2,4,…

48. 旋转图像

给定一个 × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。

你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

示例 :

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

思路:

以i=0,j=0元素5开始,旋转过程中的交替顺序就是5->11->16->15->5

元素位置的行和列变化:[0][0]->[0][3]->[3][3]->[3][0]->[0][0]

以元素1为例:1->10->12->13->1

元素位置的行和列变化:[0][1]->[1][3]->[3][2]->[2][0]->[0][1]

以元素9为例:9->7->14->2->9

元素位置的行和列变化:[0][2]->[2][3]->[3][1]->[1][0]->[0][2]

抽象成i和j的变化:[i][j]->[j][n-1-i]->[n-1-i][n-1-j]->[n-1-j][i]->[i][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;

到此最外圈已经处理完成,不妨确定一下终止条件:三个起点,5,1,9它们i=0,j递增,j一开始等于i,最后小于n-1-i。(可以通过6X6的矩阵验证,黄色是每圈的起点,红色是每圈的终点)

加上之前的核心代码:

         for(int j=i;j<n-i-1;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;}

最后就是处理圈由外向内收缩的过程,通过6X6的矩阵,可以看到圈数是3,5X5的矩阵圈数也是3,所以圈数=n/2,i从0开始,递增

代码:

class Solution {
public:void rotate(vector<vector<int>>& matrix) {int n=matrix.size();for(int i=0;i<n/2;i++){for(int j=i;j<n-i-1;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;}}  }
};

240. 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

示例 1:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

思路:暴力可以直接两层循环解出来,这里利用矩阵升序和降序的特点写出解法

我们可以模仿爬虫,对于目标数,如果当前处在的元素大于目标数,我们就向降序的方向移动;如果当前处在的元素小于目标数,我们就向升序的方向移动。这就是爬虫选择方向的规则。

我们现在确定爬虫的起点,左上,左下,右上,右下

左上向右,向下都是升序;右下向上,向左都是升序,不作为爬虫的起点。

左下向右升序,向上降序;右上向左降序,向下升序,可以作为爬虫起点。

我们以左下为起点,开始搜索目标值5,18>5向上爬,10>5向上爬,3<5向右爬,6>5向上爬,找到返回true。

代码:

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int i=matrix.size()-1;int j=0;while(i>=0&&j<matrix[0].size()){if(matrix[i][j]>target) i--;//向上爬else if(matrix[i][j]<target) j++;//向右爬else return true;}return false;}
};

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

相关文章:

  • 企业网站的布局品牌网站建设小7a蝌蚪
  • 网站免费制作平台公司网站开发需求文档
  • 网站建设 万网 域名哈尔滨网站关键词优化
  • 网站下面 备案网络游戏设计是干什么的
  • 在线做简历的网站钓鱼网站如何做
  • 什么可以做冷门网站网站建设与运营 教材 崔
  • 网站首页图片做多大软件定制开发是货物还是服务
  • 做杂志一般在哪个网站找感觉基于wordpress的博客系统
  • 建设一个购物网站多少钱做编程网站有哪些内容
  • 用wordpress仿a站可以发外链的网站整理
  • 做电影网站赚钱的方法wordpress search制作
  • 大连城乡建设网站最近一周国内热点新闻
  • 设计学网站专题型定制网站建设
  • 怎么做跑腿网站wordpress可以仿任何站
  • 网站建设分金手指专业十二域名解析过程
  • 专业层析成像代做网站软件开发的主要任务是
  • 卖渔具的亲戚做网站铜川网站建设公司电话
  • 佛山知名网站建设公司郑州网站公司哪家好
  • 网站开发吗和APP软件一样吗自己在线房屋设计免费
  • 网站推广费用怎么做分录wordpress 搜索记录表
  • 360免费建站怎么进不去网站开发需求清单
  • 金乡网站建设一键查询个人房产
  • 做自媒体与做网站南通高端网站建设公司
  • 网站服务器多少钱一月治疗早射最有效的方法是什么
  • 昆明建设厅网站专业的饰品行业网站开发
  • 百元做网站2022年seo最新优化策略
  • 青岛做网站的公司有哪些网站模板下载好之后如何安装
  • 免费商用cms郑州做网站优化最好的公司
  • html5网站框架网站建立连接不安全怎么处理
  • 京东网站建设缺点哈尔滨企业做网站