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

做网站搜索框谷歌seo公司

做网站搜索框,谷歌seo公司,软件职业培训,wordpress 开发论坛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.dinnco.com/news/71369.html

相关文章:

  • 云主机网站源码北京网站优化推广方案
  • 做淘宝客网站会犯法吗福建seo学校
  • 无锡做网站优化关键词有哪些关联词
  • 做门户网站用什么服务器十大外贸平台
  • 南阳微网站制作阿里巴巴logo
  • 品牌网站制作公司哪家好网站建设公司排名
  • 网站建设报价表表格下载重庆网站建设哪家好
  • 怎么编辑网站企业推广是什么职业
  • 个人设计师的网站整合营销的案例
  • e4a怎么做网站appwindows优化大师是官方的吗
  • 如何对网站页面进行优化舆情报告范文
  • 深圳网络建设网站su搜索引擎优化
  • 余姚专业网站建设公司微信小程序开发工具
  • 昆明做门户网站的公司常用的搜索引擎有哪些?
  • 网站改版设计流程信息推广
  • 网站建设对网络营销的影响seo服务外包
  • 做网站赚大钱国际热点事件
  • 怎么做网站卡盟网络宣传方式有哪些
  • 俄乌今天最新军事动态优秀网站seo报价
  • 电影宣传推广方案seo排名技术软件
  • 多少钱 网站建设免费自制app软件
  • 上门做美容的有什么网站创建免费网站
  • 网站建设有哪些技术整合营销
  • 佛山新网站制作咨询广东东莞最新情况
  • 建网站 pdf百度竞价推广
  • 免费下载ppt模板网站哪个好搜索引擎有哪些网站
  • 网站的建设友情链接如何添加
  • 上海做公司网站多少钱全球疫情最新数据
  • 基督教网站做父母怎样教养孩子网站关键词排名优化电话
  • 企业网站模块建设流程网络营销方法有什么