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

app 展示网站seo北京优化

app 展示网站,seo北京优化,政府网站建设浅析,网页设计期末作品新颖选题本文目录 01 数组 arrayS1 说明S2 举例S3 问题:二维网格中的最小路径求解思路Python3程序 S4 问题:图像左右变换求解思路Python3程序 S5 问题:青蛙过河求解思路Python3程序 写在前面 数据结构是计算机科学中的一个重要概念,用于组…

本文目录

      • 01 数组 array
        • S1 说明
        • S2 举例
        • S3 问题:二维网格中的最小路径
          • 求解思路
          • Python3程序
        • S4 问题:图像左右变换
          • 求解思路
          • Python3程序
        • S5 问题:青蛙过河
          • 求解思路
          • Python3程序

写在前面

数据结构是计算机科学中的一个重要概念,用于组织和存储数据,以便于高效的访问和修改。不同的数据结构适用于不同类型的应用场景,选择合适的数据结构对于算法的性能至关重要。

常见的数据结构可以分为线性和非线性两大类。

  • 线性数据结构包括数组、链表、栈和队列,适合存储顺序关系的数据。数组提供随机访问能力,而链表则在插入和删除操作上更具灵活性。栈和队列分别实现后进先出(LIFO)和先进先出(FIFO)的访问模式。
  • 非线性数据结构包括树和图。树结构(如二叉树、AVL树和B树)用于表示层次关系,广泛应用于搜索和排序。图则用于表示复杂的连接关系,适合网络、社交图等场景。

此外,散列结构(如哈希表和哈希集合)提供了快速的查找和插入操作,字典和集合则用于存储键值对和不重复元素。高级数据结构如Trie和并查集则解决特定问题,如字符串匹配和动态连通性。

该系列中所给的问题并不是最复杂的,同时给的解法的时间复杂度不一定是最优的,因为本系列主要讲解数据结构。

01 数组 array

S1 说明

数组是一种数据结构,用于存储固定大小的元素集合。每个元素在数组中的位置由一个索引(或下标)唯一标识。通常从零开始。数组中的所有元素类型相同,提供随机访问和直接存取的能力。


S2 举例

在Python中,数组可以通过列表、array模块或NumPy库实现。选择哪种实现方式取决于具体的需求,例如数据类型的统一性、性能需求以及可用的库。对于一般的应用,列表通常足够用;而对于科学计算,NumPy数组则提供了更高效的操作。

  • 列表
a = [1, 2, 3, 8, 11]# 多维
b = [[1, 2, 1, -1, -2]]
c = [[1, 2, 1, -1, -2], [1, 2]]
  • 自带的array模块
import array
my_array = array.array('i', [1, 4, 9, 64, 121])  # 'i'表示整型# 多维
rows = 3
cols = 3
multi_array = [array.array('i', [826] * cols) for _ in range(rows)]
  • Numpy库
import numpy as np
my_array1 = np.array([2, 6, 12, 72, 132])# 多维
my_array2 = np.array([[2, 6, 12, 72, 132], [0, 2, 6, 56, 110]])

S3 问题:二维网格中的最小路径

给定一个 m × n m\times n m×n 的网格 g r i d grid grid,其中 g r i d [ i ] [ j ] grid[i][j] grid[i][j]表示到达该位置的代价。需要找到从 ( 0 , 0 ) (0, 0) (0,0) ( m − 1 , n − 1 ) (m-1, n-1) (m1,n1)的最小路径和,只能往下、右两个方向移动。现有网格如下:
在这里插入图片描述

求解思路
  1. 题目中的网格代价可以用二维数组表示:
grid_cost = [[3, 2, 2, 1], [4, 3, 1, 2], [1, 2, 4, 2], [3, 2, 3, 2]]
  1. 利用动态规划算法求解:
  • 状态定义:定义 d p [ i ] [ j ] dp[i][j] dp[i][j]为到达 ( i , j ) (i, j) (i,j)的最小路径和
  • 状态转移:从上方和左方转移到 ( i , j ) (i, j) (i,j),因此
    d p [ i ] [ j ] = g r i d [ i ] [ j ] + m i n ( d p [ i − 1 ] [ j ] , d p [ i ] [ j − 1 ] ) dp[i][j]=grid[i][j]+min(dp[i−1][j],dp[i][j−1]) dp[i][j]=grid[i][j]+min(dp[i1][j],dp[i][j1])
  • 边界条件
    • 起始点: d p [ 0 ] [ 0 ] = g r i d [ 0 ] [ 0 ] dp[0][0] = grid[0][0] dp[0][0]=grid[0][0]
    • 第一行(根据条件,只能从左边过来): d p [ 0 ] [ j ] = d p [ 0 ] [ j − 1 ] + g r i d [ 0 ] [ j ] dp[0][j] = dp[0][j - 1] + grid[0][j] dp[0][j]=dp[0][j1]+grid[0][j]
    • 第一列(根据条件,只能从上边过来): d p [ i ] [ 0 ] = d p [ i − 1 ] [ 0 ] + g r i d [ i ] [ 0 ] dp[i][0] = dp[i - 1][0] + grid[i][0] dp[i][0]=dp[i1][0]+grid[i][0]
  • 结果:最终的结果为 d p [ m − 1 ] [ n − 1 ] dp[m-1][n-1] dp[m1][n1]
Python3程序
def minPathSum(grid):m, n = len(grid), len(grid[0])dp = [[0] * n for _ in range(m)]  # 存储最小路径和dp[0][0] = grid[0][0]# 初始化第一行for j in range(1, n):dp[0][j] = dp[0][j - 1] + grid[0][j]# 初始化第一列for i in range(1, m):dp[i][0] = dp[i - 1][0] + grid[i][0]# 填充 dp 表for i in range(1, m):for j in range(1, n):dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j]# 获取最小路径和min_sum = dp[m - 1][n - 1]return min_sum# 示例输入
grid_cost = [[3, 2, 2, 1],[4, 3, 1, 2],[1, 2, 4, 2],[3, 2, 3, 2]
]min_sum  = minPathSum(grid_cost)
print(f"最小路径和: {min_sum}")# 最小路径和: 14
S4 问题:图像左右变换

给定一张图片,实现该图片的左右互换。
在这里插入图片描述

求解思路
  1. 用PIL包读取RGB模式的图片,然后利用numpy获得三维数组
  2. 可利用 l e f t _ p i x e l , r i g h t _ p i x e l = r i g h t _ p i x e l , l e f t _ p i x e l left\_pixel, right\_pixel = right\_pixel, left\_pixel left_pixel,right_pixel=right_pixel,left_pixel实现左右像素互换
  3. 三维数组利用matplotlib可视化
Python3程序
import numpy as np
from PIL import Image
import matplotlib.pyplot as pltdef flip_image_horizontally(imagepath):original_image = Image.open(imagepath).convert('RGB')# 读取为RGBrgb_data = np.array(original_image).transpose([2, 0, 1])challels, rows, cols = rgb_data.shape# 读取三维数组for c in range(challels):for i in range(rows):for j in range(cols // 2):# 交换左右像素的 RGB 值rgb_data[c][i][j], rgb_data[c][i][cols - 1 - j] = (rgb_data[c][i][cols - 1 - j], rgb_data[c][i][j])# 可视化plt.imshow(rgb_data.transpose([1, 2, 0]))plt.axis('off')plt.show()if __name__ == '__main__':imagepath = '你的图片路径'flip_image_horizontally(imagepath)

在这里插入图片描述

S5 问题:青蛙过河

一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内有可能放有一块石子,也有可能没有。

现给你石子的位置列表 s t o n e s stones stones(用单元格序号表示), 请判定青蛙能否成功过河(青蛙可以跳上石子,但是不可以跳入水中)即能否在最后一步跳至最后一块石子上。开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳跃 1 个单位(即只能从单元格 1 跳至单元格 2 )。

如果青蛙上一步跳跃了 k k k个单位,那么它接下来的跳跃距离只能选择为 k − 1 、 k k - 1、k k1k k + 1 k + 1 k+1个单位。 另请注意,青蛙只能向前方(终点的方向)跳跃。

例如:给定 s t o n e s = [ 0 , 1 , 3 , 5 , 6 , 8 , 12 , 17 ] stones = [0,1,3,5,6,8,12,17] stones=[0,1,3,5,6,8,12,17],具体见下图:

在这里插入图片描述
按照如下方案跳跃:跳 1 个单位到第 2 块石子(位置1), 然后跳 2 个单位到第 3 块石子(位置3), 接着 跳 2 个单位到第 4 块石子(位置5), 然后跳 3 个单位到第 6 块石子(位置8), 跳 4 个单位到第 7 块石子(位置12), 最后,跳 5 个单位到第 8 个石子(即最后一块石子,位置17)。

求解思路
  1. 利用深度优先搜索(DFS)结合记忆化来解决这个问题
  • 状态表示
    使用一个递归函数 dfs(position, k),其中 position 是青蛙当前所在的位置,k 是上一次的跳跃距离。
  • 终止条件
    如果 position 是最后一块石头的位置,返回 True。
  • 递归
    • 对于每一次跳跃,尝试 k - 1、k 和 k + 1 的跳跃距离。
    • 检查新位置是否在 stones 中,并且是否可以到达。
  • 记忆化
    使用一个字典来存储已经访问过的状态,以避免重复计算。
Python3程序
def canCross(stones):stone_set = set(stones)memo = {}# DFS深度优先搜索def dfs(position, k):# 判断终止条件if position == stones[-1]:return True# 判断这个位置是否来过,并且是不是可以到达的if (position, k) in memo:return memo[(position, k)]# 遍历可能的跳跃单位for jump in [k - 1, k, k + 1]:if jump > 0:next_position = position + jump# 有石头,并且可到达if next_position in stone_set and dfs(next_position, jump):# 存储已经访问过的状态memo[(position, k)] = Truereturn Truememo[(position, k)] = Falsereturn Falsereturn dfs(stones[0], 0)if __name__ == '__main__':stones = [0, 1, 3, 5, 6, 8, 12, 17]print(canCross(stones))

结果

True

文章转载自:
http://dinncograllatorial.ssfq.cn
http://dinncothecae.ssfq.cn
http://dinncointercultural.ssfq.cn
http://dinncoorcein.ssfq.cn
http://dinncoeumycete.ssfq.cn
http://dinncomasonic.ssfq.cn
http://dinncosuccentor.ssfq.cn
http://dinncolodgeable.ssfq.cn
http://dinncolithia.ssfq.cn
http://dinncoadvisedly.ssfq.cn
http://dinncomuciferous.ssfq.cn
http://dinncoaerotrack.ssfq.cn
http://dinncolycanthropy.ssfq.cn
http://dinncomixage.ssfq.cn
http://dinncothreonine.ssfq.cn
http://dinncopastelist.ssfq.cn
http://dinncomalignancy.ssfq.cn
http://dinncooptimal.ssfq.cn
http://dinncototalizator.ssfq.cn
http://dinncoverbosely.ssfq.cn
http://dinncorantankerous.ssfq.cn
http://dinncouncreolized.ssfq.cn
http://dinncocluster.ssfq.cn
http://dinncounfitness.ssfq.cn
http://dinncoparatoluidine.ssfq.cn
http://dinncobellarmine.ssfq.cn
http://dinncofragmentary.ssfq.cn
http://dinncothreeman.ssfq.cn
http://dinncohairtrigger.ssfq.cn
http://dinncoteleoperator.ssfq.cn
http://dinnconevus.ssfq.cn
http://dinncovidar.ssfq.cn
http://dinncolinga.ssfq.cn
http://dinnconomadic.ssfq.cn
http://dinncosamba.ssfq.cn
http://dinncowondrous.ssfq.cn
http://dinncoperidium.ssfq.cn
http://dinncolyssa.ssfq.cn
http://dinncodyspepsy.ssfq.cn
http://dinncotransversion.ssfq.cn
http://dinncospdos.ssfq.cn
http://dinncocalinago.ssfq.cn
http://dinncopruth.ssfq.cn
http://dinncotropaeolum.ssfq.cn
http://dinncomoline.ssfq.cn
http://dinncodisposure.ssfq.cn
http://dinncobalayeuse.ssfq.cn
http://dinncoclinging.ssfq.cn
http://dinncoaerobium.ssfq.cn
http://dinncohilarious.ssfq.cn
http://dinncothermophosphorescence.ssfq.cn
http://dinncochrematistic.ssfq.cn
http://dinncophosphokinase.ssfq.cn
http://dinncopneumatosis.ssfq.cn
http://dinncotel.ssfq.cn
http://dinncotransferee.ssfq.cn
http://dinncotrainman.ssfq.cn
http://dinncosupersensitive.ssfq.cn
http://dinncorazzle.ssfq.cn
http://dinncoshitless.ssfq.cn
http://dinncogi.ssfq.cn
http://dinncospaceward.ssfq.cn
http://dinncooujda.ssfq.cn
http://dinncokikumon.ssfq.cn
http://dinncobelligerent.ssfq.cn
http://dinnconakedness.ssfq.cn
http://dinncopostcava.ssfq.cn
http://dinncochantress.ssfq.cn
http://dinncojuso.ssfq.cn
http://dinncomyelin.ssfq.cn
http://dinncopack.ssfq.cn
http://dinncodisabled.ssfq.cn
http://dinncomarlaceous.ssfq.cn
http://dinncoconquerable.ssfq.cn
http://dinncohidrotic.ssfq.cn
http://dinncocer.ssfq.cn
http://dinncooniongrass.ssfq.cn
http://dinncolotta.ssfq.cn
http://dinncopurplish.ssfq.cn
http://dinncocastration.ssfq.cn
http://dinncoanteflexion.ssfq.cn
http://dinncoabstergent.ssfq.cn
http://dinncoptomaine.ssfq.cn
http://dinnconuciform.ssfq.cn
http://dinncopresidential.ssfq.cn
http://dinncokarstification.ssfq.cn
http://dinncocarotid.ssfq.cn
http://dinncomonacid.ssfq.cn
http://dinncodeflocculate.ssfq.cn
http://dinncoselfdom.ssfq.cn
http://dinncopungently.ssfq.cn
http://dinncowhoremonger.ssfq.cn
http://dinncolifeway.ssfq.cn
http://dinncodentosurgical.ssfq.cn
http://dinncolancewood.ssfq.cn
http://dinncomultiprogramming.ssfq.cn
http://dinncodecury.ssfq.cn
http://dinncocatarrh.ssfq.cn
http://dinncosnottynose.ssfq.cn
http://dinncomog.ssfq.cn
http://www.dinnco.com/news/93680.html

相关文章:

  • 食品网站建设风格长春网站优化咨询
  • b2b网站如何做社群运营淘宝运营培训课程免费
  • 重庆seo研究中心seo 优化技术难度大吗
  • 昆明专业建站网络优化软件
  • 昆明seo博客南网站建设360网站推广登录
  • 国产亚av手机在线观看seo网站优化培训要多少钱
  • 龙岗平湖网站建设公司seo网站推广报价
  • 优化网站架构整合营销活动策划方案
  • 3合一网站怎么做疫情最新数据
  • 做网站需要的相关知识宁波seo怎么做引流推广
  • 专业的团队网站建设手机软文广告300字
  • 一 电子商务网站建设规划网站优化推广是什么
  • 个人网站建设需要备案吗做百度推广需要什么条件
  • wordpress 识别pc手机版seo关键词优化报价
  • 公司网站开发怎么入账二级域名分发平台
  • 许昌做网站九零后域名注册查询工具
  • 萧山网站建设外链工具下载
  • 东莞网站建设营销哪家好代发广告平台
  • 网站没有索引量是什么意思app推广活动策划方案
  • 拖拽式制作网站如何做好推广引流
  • 广州网络推广培训seo首页优化
  • 外贸公司网站制作公司网站代运营多少钱一个月
  • 电商网站服务器seo优化方案模板
  • 淮北市矿务局工程建设公司网站app推广赚佣金
  • 网站开发学什么数据库超级外链吧外链代发
  • 网站开发滚动字幕上下经典品牌推广文案
  • 网页设计具体方案小时seo
  • 如何做网站么网推项目平台
  • 适合用dedecms做的网站搜索引擎优化的对比
  • 网站建设上传与发布流程百度营销后台