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

pc蛋蛋游戏体验网站建设下载安装百度一下

pc蛋蛋游戏体验网站建设,下载安装百度一下,网页版微信怎么登陆,做仿网站的书82.删除排序链表中的重复元素II 定义单个指针 cur#xff0c;指向虚拟头节点。如果 cur.next cur.next.next#xff0c;说明 cur 后面的两个节点重复#xff0c;例如 节点2 后面存在 2个节点3。我们令 节点2 - 节点4#xff0c;实现删除两个节点3的操作。 class Solut…82.删除排序链表中的重复元素II 定义单个指针 cur指向虚拟头节点。如果 cur.next cur.next.next说明 cur 后面的两个节点重复例如 节点2 后面存在 2个节点3。我们令 节点2 - 节点4实现删除两个节点3的操作。 class Solution:def deleteDuplicates(self, head: Optional[ListNode]) - Optional[ListNode]:dummyhead ListNode(val 0, next head)cur dummyheadwhile cur.next and cur.next.next:if cur.next.val cur.next.next.val:repeat_val cur.next.val# 跳过某段重复while cur.next and cur.next.val repeat_val:cur.next cur.next.nextelse:cur cur.nextreturn dummyhead.next 240.搜索二维矩阵II 利用矩阵的递增性质从左下角元素开始搜索同列元素都小于此元素同行元素都大于此元素。因此和 target 比较后我们可以立即排除一行或者一列的元素。如下图从右上角开始同理这是由于这两处的元素大小处在所在行和列的所有元素中间可以利用二分思想缩减搜索规模。而左上和右下角的元素处在所在行和列的所有元素的两端。 class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) - bool:# 起始点定在矩阵左下角i, j len(matrix) - 1, 0while i 0 and j len(matrix[0]) - 1:if matrix[i][j] target:i - 1elif matrix[i][j] target:j 1else:return Truereturn False 冒泡排序 遍历数组每次交换相邻两个元素一次遍历后最大的数将会被移至末尾。针对所有的元素重复以上的步骤除了最后一个。持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较。时间复杂度为 O(n^2) def bubble_sort(arr):n len(arr)# 遍历所有数组元素for i in range(n):for j in range(0, n-i-1):# 遍历数组从0到n-i-1# 交换如果元素大于下一个元素if arr[j] arr[j1]:arr[j], arr[j1] arr[j1], arr[j]return arr 快速排序 选择基准值从数组中选择一个元素作为基准值。选择方法有多种如选择第一个元素、最后一个元素、中间元素等。 分区操作重新排列数组使得所有小于基准值的元素都排在基准前面而所有大于基准值的元素都排在基准的后面相等的数可以到任一边。在这个分区退出之后该基准就处于数组的中间位置。 递归排序递归地将小于基准值的子数组和大于基准值的子数组排序。 时间复杂度为O(n log n) def quick_sort(arr):# 分区函数根据pivot基准值将数组分为两部分def partition(left, right):pivot arr[left] # 选择左边界的元素作为pivotwhile left right:# 从右向左扫描找到第一个小于pivot的元素移动到左边while left right and arr[right] pivot:right - 1arr[left] arr[right]# 从左向右扫描找到第一个大于pivot的元素移动到右边while left right and arr[left] pivot:left 1arr[right] arr[left]# 循环结束left和right相遇这是pivot的正确位置将pivot放回arr[left] pivotreturn left # 返回pivot的位置# 递归排序的辅助函数def quick_sort_recursive(left, right):if left right: # 至少包含两个元素的区间才需要排序pi partition(left, right) # 对当前区间进行分区得到pivot的位置quick_sort_recursive(left, pi - 1) # 递归排序pivot左侧的子数组quick_sort_recursive(pi 1, right) # 递归排序pivot右侧的子数组quick_sort_recursive(0, len(arr) - 1) # 对整个数组进行快速排序return arr # 返回排序后的数组538.把二叉搜索树转换为累加树  累加树Greater Sum Tree常见于二叉搜索树Binary Search Tree的变体。在累加树中每个节点的值被修改为原始二叉搜索树中所有大于或等于该节点值的节点值之和。 举例 有以下BST 反向中序遍历右中左 我们遍历的顺序是9 - 8 - 5 - 4 - 3 - 2。遍历时我们累计已经访问过的节点值的和并将这个累积和赋给当前节点。 访问节点 9当前累积和 9更新节点 9 的值为 9。访问节点 8当前累积和 9 8 17更新节点 8 的值为 17。访问节点 5当前累积和 17 5 22更新节点 5 的值为 22。访问节点 4当前累积和 22 4 26更新节点 4 的值为 26。访问节点 3当前累积和 26 3 29更新节点 3 的值为 29。访问节点 2当前累积和 29 2 31更新节点 2 的值为 31。 class Solution:def convertBST(self, root: Optional[TreeNode]) - Optional[TreeNode]:self.sum 0def dfs(node):# 递归终止条件if not node:return# 反向中序右 - 中 - 左# 右dfs(node.right)# 中self.sum node.valnode.val self.sum # 更新节点值# 左dfs(node.left)dfs(root)return root 1743.从相邻元素对还原数组 数组元素各不相同有以下观察 每个元素除了首尾元素都会有两个相邻元素前一个和后一个。数组的首元素 只有一个相邻元素即它后面的元素。数组的尾元素 同样只有一个相邻元素即它前面的元素。 因此在从 adjacentPairs 构建的 adj_map 中大多数键代表 nums 中的元素都会有两个条目在其对应的列表中这两个条目分别表示它的前一个和后一个相邻元素。例外的是 nums 的首尾元素它们在 adj_map 中的列表长度将是 1因为它们各自只有一个相邻元素。 举例说明 考虑数组 nums [1, 2, 3, 4]其相邻元素对可能包括 [1, 2][2, 3][3, 4] 在通过这些对构建 adj_map 后其内容将是 1 - [2]2 - [1, 3]3 - [2, 4]4 - [3] 由于顺序不限我们随意选择其中一个长度为 1 的键作为起点然后根据相邻关系依次添加元素到结果数组中直到所有元素都被添加。 class Solution:def restoreArray(self, adjacentPairs: List[List[int]]) - List[int]:n len(adjacentPairs) 1# 构建关系哈希表adj_map defaultdict(list)for u, v in adjacentPairs:adj_map[u].append(v)adj_map[v].append(u)# 找到 nums 的起始元素for key, val in adj_map.items():if len(val) 1:start keybreak# 构建 numsnums []nums.append(start)nums.append(adj_map[start][0])while len(nums) n:cur_val nums[-1]pre_val nums[-2]for next_val in adj_map[cur_val]:# cur_val键对应的值包含cur_val的前一个和后一个元素# 对于cur_val的后一个元素的确定我们需要避免重复选择cur_val的前一个元素pre_valif next_val ! pre_val:nums.append(next_val)else:continuereturn nums
http://www.zqtcl.cn/news/751584/

相关文章:

  • 中国建设注册管理中心网站首页大连地区建设网站
  • 广州致峰网站建设藁城网络推广
  • 怎么做免费个人网站wordpress dux 5.3
  • 手机触屏版网站网站功能介绍
  • 商场设计案例青岛百度快速排名优化
  • 制作网站要步骤湖北省建设厅网站上岗证查询
  • 网站建设制作公司都选万维科技制作网站需要注意什么
  • jsp小型网站开发wordpress微博插件
  • app充值网站开发怎么去做网站
  • 合肥建站网站模板word上下页纸张方向
  • 大学跳蚤市场网站建设哈尔滨网站建设
  • 网站开发合同中的知识产权条款怎么给公司建网站
  • 网站代维护wordpress 主题中心
  • 中铁广州建设有限公司网站临安做企业网站的公司
  • 国内可访问的海外网站和应用重庆好玩还是成都好玩
  • 定制开发小程序天津做网站优化的公司
  • 公司网站首页怎么做在线二级域名子域名查询
  • 淮南网站优化公司国内什么网站用asp.net
  • 做数据网站带网站的图片素材
  • 大方县住房城乡建设局网站wordpress 连接flickr
  • 国家建设部网站倪虹邢台新闻最新事件
  • 杭州网站 建设广州金将令做网站怎么样
  • 苏州科建设交通学院网站地方网站类型
  • 怎样做投资理财网站城乡建设部网站第35号令
  • 南昌集团网站建设wordpress去掉rss订阅
  • 郑州做网站的外包公司有哪些宁波 电商平台网站建设
  • 网站平台开发多少钱wordpress文章展示
  • 汕尾市企业网站seo点击软件建设一个网站的步骤有哪些
  • 备案上个人网站和企业网站的区别实名认证域名可以做电影网站吗
  • 顾氏网站建设有限公司怎么样memcache安装wordpress