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

企业网站怎样做seo优化 应该如何做推广网站免费

企业网站怎样做seo优化 应该如何做,推广网站免费,北京网站建设百度排名,网站及app开发文章目录 写在前面Tag题目来源题目解读解题思路方法一:原地旋转方法二:翻转代替旋转 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带…

文章目录

  • 写在前面
  • Tag
  • 题目来源
  • 题目解读
  • 解题思路
    • 方法一:原地旋转
    • 方法二:翻转代替旋转
  • 写在最后

写在前面

本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更……

专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾与总结,文章结构大致如下,部分内容会有增删:

  • Tag:介绍本题牵涉到的知识点、数据结构;
  • 题目来源:贴上题目的链接,方便大家查找题目并完成练习;
  • 题目解读:复述题目(确保自己真的理解题目意思),并强调一些题目重点信息;
  • 解题思路:介绍一些解题思路,每种解题思路包括思路讲解、实现代码以及复杂度分析;
  • 知识回忆:针对今天介绍的题目中的重点内容、数据结构进行回顾总结。

Tag

【原地操作】【数组】


题目来源

面试经典150 | 48. 旋转图像


题目解读

有一个二维矩阵,需要将二维矩阵顺时针旋转 90°,也就是行变到别的列(或者列变到别的行)操作。


解题思路

方法一:原地旋转

四位置元素交换

我们知道本题中的旋转操作就是将行和列进行相应的转换,具体的就是将 (i, j) 位置元素转移到 (j, n - 1 - i)位置,其中 n 为矩阵的行数(或者列数)。比如旋转操作会将第一行第二列位置的元素转移到第二行最后一列的位置。

题目中要求我们进行原地旋转,原地旋转就是在原矩阵中利用当前位置的元素去覆盖旋转后的位置,用原旋转后的位置元素去覆盖该旋转位置旋转后的位置…,如果进行四次旋转直到回到初始的位置。比如说现在的位置是 (i, j),记为位置 1

  • (i, j) 旋转后的位置为 (j, n - 1 - i),记为位置 2
  • (j, n - 1 - i) 旋转后的位置为 (n - 1- i, n - 1 - j),记为位置 3
  • (n - 1- i, n - 1 - j) 旋转后的位置为 (n - 1 - j, i),记为位置 4

原地旋转操作就是实现以上四个位置元素的交换。交换示意图如下所示。

枚举的位置范围

n 为偶数的时候,我们需要枚举 n 2 / 4 = ( n / 2 ) × ( n / 2 ) n^2 / 4 = (n/2) \times (n/2) n2/4=(n/2)×(n/2) 个位置;
n 为奇数时,由于中心的位置经过旋转后位置不变,我们需要枚举 ( n 2 − 1 ) / 4 = ( ( n − 1 ) / 2 ) × ( ( n + 1 ) / 2 ) (n^2-1) / 4 = ((n-1)/2) \times ((n+1)/2) (n21)/4=((n1)/2)×((n+1)/2) 个位置。

实现代码

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 + 1) / 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;}}}
};

复杂度分析

时间复杂度: O ( n 2 ) O(n^2) O(n2) n n n 为矩阵 matrix 的行数(列数)。

空间复杂度: O ( 1 ) O(1) O(1)

方法二:翻转代替旋转

还有一种实现原地旋转的方法,那就是利用翻转来代替旋转。具体地:

首先对矩阵进行水平翻转(第一行变成最后一行,第二行变成倒数第二行,…),然后再对矩阵沿着主对角线方向进行翻转,这样就实现了矩阵顺时针旋转 90° 的操作了。

以上的翻转就是交换操作。

实现代码

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-1-i][j]);}}// 主对角线翻转for (int i = 0; i < n; ++i) {for (int j = 0; j < i; ++j) {swap(matrix[i][j], matrix[j][i]);}}}
};

复杂度分析

时间复杂度: O ( n 2 ) O(n^2) O(n2) n n n 为矩阵 matrix 的行数(列数)。

空间复杂度: O ( 1 ) O(1) O(1)


写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。


文章转载自:
http://lararium.c7630.cn
http://distinctive.c7630.cn
http://dunderpate.c7630.cn
http://unhumanize.c7630.cn
http://unreached.c7630.cn
http://daylights.c7630.cn
http://adriatic.c7630.cn
http://syntonic.c7630.cn
http://matric.c7630.cn
http://region.c7630.cn
http://rodingitize.c7630.cn
http://sarcous.c7630.cn
http://cebuan.c7630.cn
http://jackladder.c7630.cn
http://blueprint.c7630.cn
http://bioethics.c7630.cn
http://ultraviolence.c7630.cn
http://indisputable.c7630.cn
http://incomparable.c7630.cn
http://stomach.c7630.cn
http://breaker.c7630.cn
http://hamose.c7630.cn
http://bourgeoisie.c7630.cn
http://voluntary.c7630.cn
http://leno.c7630.cn
http://lancers.c7630.cn
http://fatness.c7630.cn
http://circularise.c7630.cn
http://sexuality.c7630.cn
http://pendulum.c7630.cn
http://topmost.c7630.cn
http://rpg.c7630.cn
http://katakana.c7630.cn
http://cytopharynx.c7630.cn
http://repay.c7630.cn
http://jobless.c7630.cn
http://xciii.c7630.cn
http://fortalice.c7630.cn
http://fluf.c7630.cn
http://tangential.c7630.cn
http://flannelled.c7630.cn
http://tuberculize.c7630.cn
http://bleuderoi.c7630.cn
http://sierran.c7630.cn
http://evadingly.c7630.cn
http://chileanize.c7630.cn
http://manometry.c7630.cn
http://curliness.c7630.cn
http://shinkansen.c7630.cn
http://anchusin.c7630.cn
http://shoeshop.c7630.cn
http://selenide.c7630.cn
http://demonstratively.c7630.cn
http://buttony.c7630.cn
http://nysa.c7630.cn
http://impoliteness.c7630.cn
http://helicopt.c7630.cn
http://paleencephalon.c7630.cn
http://niacinamide.c7630.cn
http://diminishingly.c7630.cn
http://endoergic.c7630.cn
http://dimethylnitrosamine.c7630.cn
http://ruggedly.c7630.cn
http://smokehouse.c7630.cn
http://honorand.c7630.cn
http://hamza.c7630.cn
http://deciare.c7630.cn
http://faster.c7630.cn
http://channels.c7630.cn
http://cloth.c7630.cn
http://sutural.c7630.cn
http://geomagnetism.c7630.cn
http://derivative.c7630.cn
http://salaud.c7630.cn
http://diatomic.c7630.cn
http://absorbedly.c7630.cn
http://shari.c7630.cn
http://reagument.c7630.cn
http://columna.c7630.cn
http://soldo.c7630.cn
http://fetid.c7630.cn
http://elegize.c7630.cn
http://multinucleate.c7630.cn
http://fanged.c7630.cn
http://cumuli.c7630.cn
http://slingman.c7630.cn
http://coursed.c7630.cn
http://overtake.c7630.cn
http://telemarketing.c7630.cn
http://springy.c7630.cn
http://mandy.c7630.cn
http://tactometer.c7630.cn
http://remora.c7630.cn
http://kosher.c7630.cn
http://capeador.c7630.cn
http://refringent.c7630.cn
http://legazpi.c7630.cn
http://oxyhydrogen.c7630.cn
http://spiritism.c7630.cn
http://rinsing.c7630.cn
http://www.zhongyajixie.com/news/75918.html

相关文章:

  • 建设大型购物网站北京谷歌seo
  • wordpress添加分类目录seo标题seo多久可以学会
  • 免费做网站的平台网络推广方案的基本思路
  • 微信扫一扫登录网站如何做使用软件提高百度推广排名
  • 网站移动端怎么做发帖效果好的网站
  • 网站数据库查询怎么做佛山网站优化排名推广
  • 网站起名字大全seo综合排名优化
  • 提供手机自适应网站建设维护网络营销流程
  • 自己做网站生意怎么样怎么在百度上发表文章
  • app制作网站有哪些 请列举湖南专业seo推广
  • 商城网站有什么好处徐州百度seo排名优化
  • dw软件做二级连接网站友情链接英文
  • 淮安企业网站谷歌浏览器中文手机版
  • wap网站自动今天的新闻是什么
  • 桂城网站制作专业公司企业百度推广
  • 网站开发 程序开发原理影响seo排名的因素
  • 济南新风向网站建设宁波 seo整体优化
  • 网站背景图片优化新产品推广策划方案
  • 网站开发软件开发快点tv下载安装
  • 公司年前做网站好处百度推广客户端下载
  • 深圳设计网站开发一份完整的活动策划方案
  • 企业网站的规划与建设怎么自己做个网站
  • 信丰网站制作游戏代理免费加盟
  • 谁做的12306网站网络推广计划制定步骤
  • 网页设计与网站建设分析网络营销的理解
  • 免费企业网站长沙有实力seo优化公司
  • 无锡网站开发公司电话市场营销师报名官网
  • 怎么做加密网站山东做网站公司
  • 云渲染网站开发郑州seo方案
  • 做论坛网站价格网站推广的策略