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

淄博微信网站建设wordpress修改侧边栏

淄博微信网站建设,wordpress修改侧边栏,中小型企业网站开发,wordpress子文件夹建站1. BFS 算法框架 BFS#xff1a;用来搜索 最短路径 比较合适#xff0c;如#xff1a;求二叉树最小深度、最少步数、最少交换次数#xff0c;一般与 队列 搭配使用#xff0c;空间复杂度比 DFS 大很多DFS#xff1a;适合搜索全部的解#xff0c;如#xff1a;寻找最短…1. BFS 算法框架 BFS用来搜索 最短路径 比较合适如求二叉树最小深度、最少步数、最少交换次数一般与 队列 搭配使用空间复杂度比 DFS 大很多DFS适合搜索全部的解如寻找最短距离一般与 栈 搭配使用 def BFS(start, target):计算从 start 到 target 的最近距离q [] # 队列先进先出visited {} # 避免走回头路q.append(start) # 将起点加入队列visited.add(start) step 0 # 记录扩散步数while q:for i in range(len(q)):cur q.pop()# 判断是否达到终点if cur target:return step# 将 cur 相邻的节点加入队列for j in cur.adj():if j not in visited:q.insert(0, j) # 队列先进先出visited.add(j)# 更新步数step 12. 二叉树的最小深度 111. 二叉树的最小深度 给定一个二叉树找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明叶子节点是指没有子节点的节点。输入root [3,9,20,null,null,15,7] 输出2 示例 2输入root [2,null,3,null,4,null,5,null,6] 输出5提示树中节点数的范围在 [0, 105] 内 -1000 Node.val 1000题解 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def minDepth(self, root: TreeNode) - int:if not root:return 0q [root]step 1while q:size len(q)for i in range(size):node q.pop(0)# 判断是否达到终点结束条件if node.left None and node.right None:return step# 将相邻节点添加到队列if node.left ! None:q.append(node.left)if node.right ! None:q.append(node.right)# 更新步数step 1return stepif __name__ __main__:# root [3,9,20,null,null,15,7]root TreeNode(3)node1 TreeNode(9)node2 TreeNode(20)node3 TreeNode(15)node4 TreeNode(7)root.left node1root.right node2node2.left node3node2.right node4s Solution()print(s.minDepth(root))3. 二叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root 返回其节点值的 层序遍历 。 即逐层地从左到右访问所有节点。示例 1输入root [3,9,20,null,null,15,7] 输出[[3],[9,20],[15,7]] 示例 2输入root [1] 输出[[1]] 示例 3输入root [] 输出[]提示树中节点数目在范围 [0, 2000] 内 -1000 Node.val 1000题解 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def levelOrder(self, root: TreeNode) - List[List[int]]:if root None:return []q [root]res []while q:level [] # 记录每层节点的值for i in range(len(q)):node q.pop()level.append(node.val)# 说明该节点没有左右节点了if node.left None and node.right None:continueif node.left ! None:q.insert(0, node.left)if node.right ! None:q.insert(0, node.right)# 将每层的结果添加到 resres.append(level)return res4. 打开转盘锁 752. 打开转盘锁 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。每个拨轮可以自由旋转例如把 9 变为 00 变为 9 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 0000 一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字一旦拨轮的数字和列表里的任何一个元素相同这个锁将会被永久锁定无法再被旋转。字符串 target 代表可以解锁的数字你需要给出解锁需要的最小旋转次数如果无论如何不能解锁返回 -1 。示例 1:输入deadends [0201,0101,0102,1212,2002], target 0202 输出6 解释 可能的移动序列为 0000 - 1000 - 1100 - 1200 - 1201 - 1202 - 0202。 注意 0000 - 0001 - 0002 - 0102 - 0202 这样的序列是不能解锁的 因为当拨动到 0102 时这个锁就会被锁定。 示例 2:输入: deadends [8888], target 0009 输出1 解释把最后一位反向旋转一次即可 0000 - 0009。 示例 3:输入: deadends [8887,8889,8878,8898,8788,8988,7888,9888], target 8888 输出-1 解释无法旋转到目标数字且不被锁定。提示1  deadends.length 500 deadends[i].length 4 target.length 4 target 不在 deadends 之中 target 和 deadends[i] 仅由若干位数字组成题解 class Solution:def openLock(self, deadends: List[str], target: str) - int:if target 0000:return 0visited {0000} # 记录已经穷举过的密码防止走回头路q [0000]step 0 # 步数while q:for i in range(len(q)):num q.pop()# 若刚好是目标就退出if num target:return stepif num in deadends:continue# 拨动密码锁将一个节点的未遍历相邻节点加入队列for j in range(4):# 向上拨动up self.plus_one(num, j)# 向下拨动down self.minus_one(num, j)# 若已经访问过则不添加到 visitedif up not in visited:q.insert(0, up)visited.add(up)if down not in visited:q.insert(0, down) visited.add(down)# 增加步数step 1return -1 def plus_one(self, num, j):a list(num)if a[j] 9:a[j] 0else:a[j] str(int(a[j]) 1)return .join(a)def minus_one(self, num, j):a list(num)if a[j] 0:a[j] 9else:a[j] str(int(a[j]) -1)return .join(a)参考BFS 算法框架套路详解 5. 钥匙和房间 841. 钥匙和房间 有 n 个房间房间按从 0 到 n - 1 编号。最初除 0 号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而你不能在没有获得钥匙的时候进入锁住的房间。当你进入一个房间你可能会在里面找到一套不同的钥匙每把钥匙上都有对应的房间号即表示钥匙可以打开的房间。你可以拿上所有钥匙去解锁其他房间。给你一个数组 rooms 其中 rooms[i] 是你进入 i 号房间可以获得的钥匙集合。如果能进入 所有 房间返回 true否则返回 false。示例 1输入rooms [[1],[2],[3],[]] 输出true 解释 我们从 0 号房间开始拿到钥匙 1。 之后我们去 1 号房间拿到钥匙 2。 然后我们去 2 号房间拿到钥匙 3。 最后我们去了 3 号房间。 由于我们能够进入每个房间我们返回 true。 示例 2输入rooms [[1,3],[3,0,1],[2],[0]] 输出false 解释我们不能进入 2 号房间。提示n rooms.length 2 n 1000 0 rooms[i].length 1000 1 sum(rooms[i].length) 3000 0 rooms[i][j] n 所有 rooms[i] 的值 互不相同题解 class Solution:def canVisitAllRooms(self, rooms: List[List[int]]) - bool:visited {0} # 记录已经穷举过的钥匙防止走回头路queue [0]while queue:index_keys queue.pop()for i in rooms[index_keys]:if i not in visited:visited.add(i)queue.insert(0, i)return len(visited) len(rooms)这个题还可以用 DFS只需将 queue.insert 换成 queue.append 即可 参考7行DFS 8行BFS 两种方法 三种实现 超详细趣味基础解 Python 6. BFS 遍历图 # -- coding: utf-8 --def bfs(_graph, s):BFS 遍历 图:param _graph: 图:param s: 从哪个点开始遍历:return:q [s]visited {s}while q:vertex q.pop()nodes _graph[vertex]for node in nodes:if node not in visited:visited.add(node)q.insert(0, node)print(vertex)if __name__ __main__:# 图可以抽象为一个字典key 表示当前节点value 为该节点的下个节点集合graph {A: [B, C],B: [A, C, D],C: [A, B, D, E],D: [B, C, E, F],E: [C, D],F: [D],}bfs(graph, A) # 从 A 点开始输出 A、B、C、D、E、F参考[Python] BFS和DFS算法第1讲
http://www.hkea.cn/news/14266604/

相关文章:

  • 四站合一网站建设wordpress添加主题设置功能
  • 企业门户网站模板环保网站建设说明
  • 内网怎么做网站服务器做网站框架可用jpg图吗
  • 广东专业网站优化公司报价免费企业宣传片制作软件
  • 北京网站排行德阳公司网站建设
  • 网站建设需要在网络上如何实现北京软件开发公司企云云
  • 网站架构搭建广告网站模板下载不了
  • 免费做漫画网站选thinkphp还是wordpress
  • 湘潭响塘乡建设局网站thinkphp5来做网站吗
  • 网站开发配置状态报告wordpress phonegap
  • 网页 网 址网站区别上海殷行建设网站
  • 网络营销导向网站建设的基础小型外包公司在哪找项目
  • 开发网站代码量南京网站排名提升
  • 营销型网站建设要多少钱说几个手机可以看的网站
  • 河南企起网站建设网络科技网站有哪些方面
  • 怎么在网站上建设投票统计河南新乡做网站公司
  • 手机客户端网站建设搜索关键词
  • 可以免费学编程的网站江苏网站建设 seo
  • 企业网站配色绿色配什么色合适哈尔滨网站建设排行
  • 网站建设需要考虑哪些因素免费建站排名
  • 建网站服务商做高端网站
  • 人物设计网站软件开发者对要发布的软件进行数字签名
  • 室内装修设计资质家居seo整站优化方案
  • 重庆荣昌网站建设报价网站建设在国内外有何趋势
  • 长沙大的建网站公司绿化面积 建设网站
  • 校友网站建设方案wordpress去掉页眉
  • 北京卓天下网站建设公司在什么网站能帮人做ppt
  • 网站服务器租赁你的知识宝库wordpress无法添加小工具
  • 免费python在线网站广州旅游景点
  • 济南外贸建站wordpress 显示多媒体