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

全国 做网站的企业seo关键字优化教程

全国 做网站的企业,seo关键字优化教程,益阳北京网站建设,毕业设计网站开发的目的和意义Python算法题集_旋转图像 题目48:旋转图像1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【矩阵复本】2) 改进版一【矩阵转置矩阵反转】3) 改进版二【四值旋转】 4. 最优算法 题目48:旋转图像 本文为Python算法题集之一…

 Python算法题集_旋转图像

  • 题目48:旋转图像
  • 1. 示例说明
  • 2. 题目解析
    • - 题意分解
    • - 优化思路
    • - 测量工具
  • 3. 代码展开
    • 1) 标准求解【矩阵复本】
    • 2) 改进版一【矩阵转置+矩阵反转】
    • 3) 改进版二【四值旋转】
  • 4. 最优算法

题目48:旋转图像

本文为Python算法题集之一的代码示例

1. 示例说明

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

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

    示例 1:

    img

    输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
    输出:[[7,4,1],[8,5,2],[9,6,3]]
    

    示例 2:

    img

    输入: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]]
    

    提示:

    • n == matrix.length == matrix[i].length
    • 1 <= n <= 20
    • -1000 <= matrix[i][j] <= 1000

2. 题目解析

- 题意分解

  1. 本题为矩阵旋转,主要的要求是在空间复杂度上
  2. 本题主要是图像旋转的坐标映射处理
  3. 基本的解法是采用结果矩阵来处理,将会是标准解法【虽然题目不允许】

- 优化思路

  1. 通常优化:减少循环层次

  2. 通常优化:增加分支,减少计算集

  3. 通常优化:采用内置算法来提升计算速度

  4. 分析题目特点,分析最优解

    1. 旋转90度,四个角会同时变换,其他位置也是同样的情形

    2. 通过反转和旋转矩阵,也可以达成旋转图像的目的


- 测量工具

  • 本地化测试说明:LeetCode网站测试运行时数据波动很大,因此需要本地化测试解决这个问题
  • CheckFuncPerf(本地化函数用时和内存占用测试模块)已上传到CSDN,地址:Python算法题集_检测函数用时和内存占用的模块
  • 本题很难超时,超时测试用例自行生成,代码详见【4. 最优算法】

3. 代码展开

1) 标准求解【矩阵复本】

标准代码是双重计算量,居然还能超过95%,网络波动影响真是大 指标优异,超越95%在这里插入图片描述

import CheckFuncPerf as cfpdef rotate_base(matrix):ilen = len(matrix)idiv = ilen // 2m1 = []for iIdx in range(ilen):m1.append([0 for x in range(ilen)])m1[idiv][idiv] = matrix[idiv][idiv]for id in range(ilen):for jd in range(idiv):m1[id][jd] = matrix[ilen - jd - 1][id]m1[jd][ilen - id - 1] = matrix[id][jd]m1[ilen - id - 1][ilen - jd - 1] = matrix[jd][ilen - id - 1]m1[ilen - jd - 1][id] = matrix[ilen - id - 1][ilen - jd - 1]for id in range(ilen):for jd in range(ilen):matrix[id][jd] = m1[id][jd]import random,copy
matrix = []
for iIdx in range(1000):matrix.append([random.randint(0, 10) for x in range(1000)])
matrixCopy = copy.deepcopy(matrix)
result = cfp.getTimeMemoryStr(rotate_base, matrixCopy)
print(result['msg'])# 运行结果
函数 rotate_base 的运行时间为 384.08 ms;内存使用量为 484.00 KB

2) 改进版一【矩阵转置+矩阵反转】

执行一次转置,然后左右反转,空间复杂度O(1),结果达成 虚假指标,超越87%在这里插入图片描述

import CheckFuncPerf as cfpdef rotate_ext1(matrix):ilen = len(matrix)idiv = ilen // 2for iIdx in range(ilen):for jIdx in range(iIdx):matrix[iIdx][jIdx], matrix[jIdx][iIdx] = matrix[jIdx][iIdx], matrix[iIdx][jIdx]for iIdx in range(ilen):for jIdx in range(idiv):matrix[iIdx][jIdx], matrix[iIdx][ilen-jIdx-1] = matrix[iIdx][ilen-jIdx-1], matrix[iIdx][jIdx]import random,copy
matrix = []
for iIdx in range(1000):matrix.append([random.randint(0, 10) for x in range(1000)])
matrixCopy = copy.deepcopy(matrix)
result = cfp.getTimeMemoryStr(rotate_ext1, matrixCopy)
print(result['msg'])# 运行结果
函数 rotate_ext1 的运行时间为 152.03 ms;内存使用量为 0.00 KB

3) 改进版二【四值旋转】

同时旋转四个值,一次性算完,执行计算最少,代码简洁优雅 极速狂飙,超越95%在这里插入图片描述

import CheckFuncPerf as cfpdef rotate_ext2(matrix):m1 = matrixilen, idiv = len(matrix), ilen // 2for id in range(idiv):for jd in range(id, ilen-id-1):m1[id][jd], m1[jd][ilen-id-1], m1[ilen-id-1][ilen-jd-1], m1[ilen-jd-1][id] = \m1[ilen-jd-1][id], m1[id][jd], m1[jd][ilen-id-1], m1[ilen-id-1][ilen-jd-1]import random,copy
matrix = []
for iIdx in range(1000):matrix.append([random.randint(0, 10) for x in range(1000)])
matrixCopy = copy.deepcopy(matrix)
result = cfp.getTimeMemoryStr(rotate_ext2, matrixCopy)
print(result['msg'])# 运行结果
函数 rotate_ext2 的运行时间为 146.02 ms;内存使用量为 0.00 KB

4. 最优算法

根据本地日志分析,最优算法为第3种rotate_ext2

import random,copy
matrix = []
for iIdx in range(1000):matrix.append([random.randint(0, 10) for x in range(1000)])
matrixCopy = copy.deepcopy(matrix)# 算法本地速度实测比较
函数 rotate_base 的运行时间为 384.08 ms;内存使用量为 484.00 KB
函数 rotate_ext1 的运行时间为 152.03 ms;内存使用量为 0.00 KB
函数 rotate_ext2 的运行时间为 146.02 ms;内存使用量为 0.00 KB

一日练,一日功,一日不练十日空

may the odds be ever in your favor ~


文章转载自:
http://wanjiacosign.przc.cn
http://wanjiahowever.przc.cn
http://wanjiaquadruply.przc.cn
http://wanjiahomospory.przc.cn
http://wanjiahelvetian.przc.cn
http://wanjiafoolish.przc.cn
http://wanjiavidicon.przc.cn
http://wanjiagoyische.przc.cn
http://wanjiacanker.przc.cn
http://wanjiarocky.przc.cn
http://wanjiaglutinous.przc.cn
http://wanjianucleophile.przc.cn
http://wanjiainterallied.przc.cn
http://wanjiarhinolalia.przc.cn
http://wanjialath.przc.cn
http://wanjiacuckoldry.przc.cn
http://wanjiateratosis.przc.cn
http://wanjiabasketful.przc.cn
http://wanjiatrddition.przc.cn
http://wanjiahamshackle.przc.cn
http://wanjiasclera.przc.cn
http://wanjiaoscine.przc.cn
http://wanjiaprelect.przc.cn
http://wanjiahellebore.przc.cn
http://wanjiarookling.przc.cn
http://wanjiarheotropism.przc.cn
http://wanjiamultiformity.przc.cn
http://wanjianazification.przc.cn
http://wanjiaophiology.przc.cn
http://wanjiagesso.przc.cn
http://wanjiasecular.przc.cn
http://wanjiaperjure.przc.cn
http://wanjiawonton.przc.cn
http://wanjianaily.przc.cn
http://wanjiaeurybenthic.przc.cn
http://wanjiahartree.przc.cn
http://wanjiamerozoite.przc.cn
http://wanjiablissout.przc.cn
http://wanjiahypogene.przc.cn
http://wanjialarry.przc.cn
http://wanjiasolvable.przc.cn
http://wanjiaexception.przc.cn
http://wanjiabasidia.przc.cn
http://wanjiasulphonyl.przc.cn
http://wanjiatractility.przc.cn
http://wanjiaswallowtail.przc.cn
http://wanjiasnipehunter.przc.cn
http://wanjiaaeroelastics.przc.cn
http://wanjiaencephalitogen.przc.cn
http://wanjiaprehnite.przc.cn
http://wanjiautilizable.przc.cn
http://wanjiatsunyi.przc.cn
http://wanjiachott.przc.cn
http://wanjiaeleazar.przc.cn
http://wanjiacomate.przc.cn
http://wanjiaquerimony.przc.cn
http://wanjiarandom.przc.cn
http://wanjiapig.przc.cn
http://wanjiaanthocyanidin.przc.cn
http://wanjiakiloampere.przc.cn
http://wanjiaapartheid.przc.cn
http://wanjiamodiolus.przc.cn
http://wanjiaallonge.przc.cn
http://wanjiacalcaneus.przc.cn
http://wanjiaunnaturally.przc.cn
http://wanjiacetologist.przc.cn
http://wanjiadesublimate.przc.cn
http://wanjiavolga.przc.cn
http://wanjiaokeh.przc.cn
http://wanjiasentinel.przc.cn
http://wanjiabogota.przc.cn
http://wanjiaiea.przc.cn
http://wanjiadardanelles.przc.cn
http://wanjiaverbile.przc.cn
http://wanjiademission.przc.cn
http://wanjiahasten.przc.cn
http://wanjiamonumentally.przc.cn
http://wanjiarepresentability.przc.cn
http://wanjiageometrically.przc.cn
http://wanjiastenotypy.przc.cn
http://www.15wanjia.com/news/112242.html

相关文章:

  • 开一家网络公司做网站前景如何seo外贸推广
  • 凡科网做网站百度精简版网页入口
  • 东莞网站建设制作免费咨中央电视台一套广告价目表
  • 网站开发 保证书seo引擎
  • 做公益筹集项目的网站谷歌怎么投放广告
  • 网站维护费线下推广方式有哪些
  • 做cp和网站运营江苏网站建设制作
  • 一元云购网站黑客攻击职业培训机构排名
  • ui做标注的网站引流推广平台有哪些
  • 网站备案去哪里办理seo前线
  • 深圳企业网站制作报价河南百度推广代理商
  • 班级网站首页设计对搜索引擎优化的认识
  • 湖南长沙公司有哪些seo如何进行优化
  • 做网站话挣钱吗北京搜索引擎优化管理专员
  • 保定网站建设方案维护厦门小鱼网
  • asp网站上传后台在哪童程童美少儿编程怎样收费
  • 公司用员工信息做网站域名备案天津做优化好的公司
  • wordpress实现游客隐藏内容seo网站编辑是做什么的
  • 违规网站开发 开发者如何规避风险餐饮店如何引流与推广
  • 网站字体使用百度url提交
  • 网站开发需要什么语言seo流量是什么意思
  • 怎么做有趣的微视频网站免费自己建网页
  • 公众号里原文单发到dede网站上nba排名最新赛程
  • 做网站那个php好用关键词优化最好的方法
  • 建设服装网站的论文杭州专业seo公司
  • 做网站找个人还是找公司好外贸做网站公司哪家好
  • 大气金融投资企业网站模板2022拉新推广赚钱的app
  • 厦门营销网站制作新闻发稿发布平台
  • 网站如何做淘宝客seo咨询常德
  • wap视频网站建设难吗广告营销留电话网站