【leetcode刷題之路】面試經典150題(5)——二叉樹+二叉樹層次遍歷+二叉搜索樹

文章目錄

      • 9 二叉樹
        • 9.1 【遞歸】二叉樹的最大深度
        • 9.2 【遞歸】相同的樹
        • 9.3 【遞歸】翻轉二叉樹
        • 9.4 【遞歸】對稱二叉樹
        • 9.5 【遞歸】從前序與中序遍歷序列構造二叉樹
        • 9.6 【遞歸】從中序與后序遍歷序列構造二叉樹
        • 9.7 【BFS】填充每個節點的下一個右側節點指針 II
        • 9.8 【遞歸】二叉樹展開為鏈表
        • 9.9 【DFS】路徑總和
        • 9.10 【DFS】求根節點到葉節點數字之和
        • 9.11 【BFS】【動態規劃】二叉樹中的最大路徑和
        • 9.12 【BFS】二叉搜索樹迭代器
        • 9.13 【BFS】完全二叉樹的節點個數
        • 9.14 【遞歸】二叉樹的最近公共祖先
      • 10 二叉樹層次遍歷
        • 10.1 【DFS】二叉樹的右視圖
        • 10.2 【BFS】二叉樹的層平均值
        • 10.3 【BFS】二叉樹的層序遍歷
        • 10.4 【BFS】二叉樹的鋸齒形層序遍歷
      • 11 二叉搜索樹
        • 11.1 【BFS】二叉搜索樹的最小絕對差
        • 11.2 【BFS】二叉搜索樹中第K小的元素
        • 11.3 【BFS】【遞歸】驗證二叉搜索樹

9 二叉樹

9.1 【遞歸】二叉樹的最大深度

題目地址:https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/?envType=study-plan-v2&envId=top-interview-150

??遞歸找左子樹和右子樹的最大深度,就是二叉樹的最大深度。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def maxDepth(self, root: Optional[TreeNode]) -> int:if not root:return 0else:left_depth = self.maxDepth(root.left)right_depth = self.maxDepth(root.right)return max(left_depth, right_depth) + 1
9.2 【遞歸】相同的樹

題目地址:https://leetcode.cn/problems/same-tree/description/?envType=study-plan-v2&envId=top-interview-150

??左右子樹相同的標志是左右子樹都存在,且根節點的值相等,按照這一標準遞歸遍歷樹的左右子樹。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:if (not p and q) or (p and not q):return Falseelif not p and not q:return Trueelif p.val != q.val:return Falseelse:return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)
9.3 【遞歸】翻轉二叉樹

題目地址:https://leetcode.cn/problems/invert-binary-tree/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:returnroot.left,root.right = self.invertTree(root.right),self.invertTree(root.left)return root
9.4 【遞歸】對稱二叉樹

題目地址:https://leetcode.cn/problems/symmetric-tree/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:if not root:return Truereturn self.is_symmetric(root.left, root.right)def is_symmetric(self, left: TreeNode, right: TreeNode):if not left and not right:return Trueelif (not left or not right) or (left.val != right.val):return Falseelse:return self.is_symmetric(left.left, right.right) and self.is_symmetric(left.right, right.left)
9.5 【遞歸】從前序與中序遍歷序列構造二叉樹

題目地址:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼,找到根節點的位置進行遞歸。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def buildTree(self, preorder: List[int], inorder: List[int]) -> Optional[TreeNode]:if not preorder or not inorder:returnroot = TreeNode(preorder[0])idx = inorder.index(preorder[0])root.left = self.buildTree(preorder[1:1+idx],inorder[:idx])root.right = self.buildTree(preorder[1+idx:],inorder[idx+1:])return root
9.6 【遞歸】從中序與后序遍歷序列構造二叉樹

題目地址:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼,找到根節點的位置進行遞歸。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def buildTree(self, inorder: List[int], postorder: List[int]) -> Optional[TreeNode]:if not inorder or not postorder:returnroot = TreeNode(postorder[-1])idx = inorder.index(postorder[-1])root.left = self.buildTree(inorder[:idx],postorder[:idx])root.right = self.buildTree(inorder[1+idx:],postorder[idx:-1])return root
9.7 【BFS】填充每個節點的下一個右側節點指針 II

題目地址:https://leetcode.cn/problems/populating-next-right-pointers-in-each-node-ii/description/?envType=study-plan-v2&envId=top-interview-150

??其實就是找出每一層的所有結點就行了,而每一層的左右節點就是下一層的結點,按照這個規則進行BFS。

"""
# Definition for a Node.
class Node:def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):self.val = valself.left = leftself.right = rightself.next = next
"""class Solution:def connect(self, root: 'Node') -> 'Node':if not root:return rootdef BFS(curLayer):nextLayer = []for node in curLayer:if node.left:nextLayer.append(node.left)if node.right:nextLayer.append(node.right)if len(nextLayer) > 1:for i in range(0,len(nextLayer)-1):nextLayer[i].next = nextLayer[i+1]if nextLayer:BFS(nextLayer)BFS([root])return root
9.8 【遞歸】二叉樹展開為鏈表

題目地址:https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/?envType=study-plan-v2&envId=top-interview-150

??二叉樹的先序遍歷的變形。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def flatten(self, root: Optional[TreeNode]) -> None:"""Do not return anything, modify root in-place instead."""while root:if root.left:cur_left = root.leftwhile cur_left.right:cur_left = cur_left.rightcur_left.right = root.rightroot.right = root.leftroot.left = Noneroot = root.right
9.9 【DFS】路徑總和

題目地址:https://leetcode.cn/problems/path-sum/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def hasPathSum(self, root: Optional[TreeNode], targetSum: int) -> bool:if not root:return Falseelif not root.left and not root.right and targetSum == root.val:return Trueelse:return self.hasPathSum(root.left,targetSum-root.val) or self.hasPathSum(root.right,targetSum-root.val)
9.10 【DFS】求根節點到葉節點數字之和

題目地址:https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/?envType=study-plan-v2&envId=top-interview-150

??DFS,分別從根節點計算每一條路徑的數字,然后求和,這里要注意判斷條件,當一個節點沒有左節點和右節點時,說明這條路徑到底了,這是要把目前的數字加入到 a n s ans ans中。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def sumNumbers(self, root: Optional[TreeNode]) -> int:ans = 0def sub_sum(root,cur_num):nonlocal ansif not root.left and not root.right:ans += cur_num*10 + root.valreturncur_num = cur_num*10 + root.valif root.left:sub_sum(root.left,cur_num)if root.right:sub_sum(root.right,cur_num)sub_sum(root,0)return ans
9.11 【BFS】【動態規劃】二叉樹中的最大路徑和

題目地址:https://leetcode.cn/problems/binary-tree-maximum-path-sum/description/?envType=study-plan-v2&envId=top-interview-150

??先找到每個節點下的最大路徑和,再一步步從上往下遍歷所有節點,如果遍歷到某個節點的左子樹或者右子樹的最大和小于零,則這個子樹可以不要,只需考慮另一個子樹即可。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def maxPathSum(self, root: Optional[TreeNode]) -> int:self.maxSum = -1001def BFS(root):if not root:return 0left_max = BFS(root.left)right_max = BFS(root.right)self.maxSum = max(self.maxSum, left_max + right_max + root.val)return max(0,max(left_max,right_max) + root.val)BFS(root)return self.maxSum
9.12 【BFS】二叉搜索樹迭代器

題目地址:https://leetcode.cn/problems/binary-search-tree-iterator/description/?envType=study-plan-v2&envId=top-interview-150

??先對二叉搜索樹中的元素進行排序,然后按照題目要求構造函數即可。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass BSTIterator:def __init__(self, root: Optional[TreeNode]):self.root = rootself.num = []self.idx = 0self.len = 0def BFS(root):if not root:returnself.num.append(root.val)self.len += 1BFS(root.left)BFS(root.right)BFS(root)self.num.sort()def next(self) -> int:if self.idx < self.len:self.idx += 1return self.num[self.idx-1]else:return -1def hasNext(self) -> bool:if self.idx < self.len:return Trueelse:return False# Your BSTIterator object will be instantiated and called as such:
# obj = BSTIterator(root)
# param_1 = obj.next()
# param_2 = obj.hasNext()
9.13 【BFS】完全二叉樹的節點個數

題目地址:https://leetcode.cn/problems/count-complete-tree-nodes/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def countNodes(self, root: Optional[TreeNode]) -> int:self.ans = 0def BFS(root):if not root:returnself.ans += 1BFS(root.left)BFS(root.right)BFS(root)return self.ans
9.14 【遞歸】二叉樹的最近公共祖先

題目地址:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/?envType=study-plan-v2&envId=top-interview-150

??如果 p p p q q q位于二叉樹的同一側,那么最近公共祖先要么是 p p p要么是 q q q,如果位于二叉樹的兩側,那么最近公共祖先則是兩者最深的那個 r o o t root root

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = Noneclass Solution:def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':if not root or root == p or root == q:return rootleft = self.lowestCommonAncestor(root.left,p,q)right = self.lowestCommonAncestor(root.right,p,q)if not left:return rightif not right:return leftreturn root

10 二叉樹層次遍歷

10.1 【DFS】二叉樹的右視圖

題目地址:https://leetcode.cn/problems/binary-tree-right-side-view/description/?envType=study-plan-v2&envId=top-interview-150

??深度優先遍歷,每次都將二叉樹每一層最右邊的元素加入數組,同時設置 d e p t h depth depth來限制數組大小,保證數組中只有最右邊的元素。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def rightSideView(self, root: Optional[TreeNode]) -> List[int]:self.ans = []def DFS(root, depth):if not root:returnif len(self.ans) < depth:self.ans.append(root.val)DFS(root.right, depth+1)DFS(root.left, depth+1)DFS(root, 1)return self.ans
10.2 【BFS】二叉樹的層平均值

題目地址:https://leetcode.cn/problems/average-of-levels-in-binary-tree/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:ans = []node_list =  [root]if not root:return answhile node_list:cur_val = []nxt_list = []for node in node_list:cur_val.append(node.val)if node.left:nxt_list.append(node.left)if node.right:nxt_list.append(node.right)ans.append(sum(cur_val)/len(cur_val))node_list = nxt_listreturn ans
10.3 【BFS】二叉樹的層序遍歷

題目地址:https://leetcode.cn/problems/binary-tree-level-order-traversal/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:ans = []cur_node = [root]if not root:return answhile cur_node:cur_val = []nxt_node = []for node in cur_node:cur_val.append(node.val)if node.left:nxt_node.append(node.left)if node.right:nxt_node.append(node.right)ans.append(cur_val)cur_node = nxt_nodereturn ans
10.4 【BFS】二叉樹的鋸齒形層序遍歷

題目地址:https://leetcode.cn/problems/binary-tree-zigzag-level-order-traversal/description/?envType=study-plan-v2&envId=top-interview-150

??詳見代碼。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:ans = []cur_node = [root]flag = Trueif not root:return answhile cur_node:cur_val = []nxt_node = []for node in cur_node:cur_val.append(node.val)if node.left:nxt_node.append(node.left)if node.right:nxt_node.append(node.right)if flag:ans.append(cur_val)else:ans.append(cur_val[::-1])flag = not flagcur_node = nxt_nodereturn ans

11 二叉搜索樹

11.1 【BFS】二叉搜索樹的最小絕對差

題目地址:https://leetcode.cn/problems/minimum-absolute-difference-in-bst/description/?envType=study-plan-v2&envId=top-interview-150

??先遍歷所有節點,然后排序,找出相鄰元素差值最小的。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def getMinimumDifference(self, root: Optional[TreeNode]) -> int:self.num = []def BFS(root):if not root:returnself.num.append(root.val)BFS(root.left)BFS(root.right)BFS(root)self.num.sort()ans = 100001for i in range(len(self.num)-1):ans = min(ans,self.num[i+1]-self.num[i])return ans
11.2 【BFS】二叉搜索樹中第K小的元素

題目地址:https://leetcode.cn/problems/kth-smallest-element-in-a-bst/description/?envType=study-plan-v2&envId=top-interview-150

??對于二叉搜索樹而言,中序遍歷就是其從小到大的排序結果,記錄訪問到的第 k k k個元素即可。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def kthSmallest(self, root: Optional[TreeNode], k: int) -> int:self.k = kself.ans = 0def BFS(root):if not root:returnBFS(root.left)self.k -= 1if self.k == 0:self.ans = root.valreturnBFS(root.right)BFS(root)return self.ans
11.3 【BFS】【遞歸】驗證二叉搜索樹

題目地址:https://leetcode.cn/problems/validate-binary-search-tree/description/?envType=study-plan-v2&envId=top-interview-150

??遞歸實現,首先要明白二叉搜索樹的判定條件,一是左子樹<root<右子樹,二是下面的左子樹的值要比當前結點小,而右子樹的值要比當前結點大,也就是不能只在一個小的子樹上滿足這個條件,往上回溯幾代之后這個條件要依然滿足才行。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = rightclass Solution:def isValidBST(self, root: Optional[TreeNode]) -> bool:def is_Valid_BST(root, min_node, max_node):if not root:return Trueelse:if min_node and root.val <= min_node.val:return Falseif max_node and root.val >= max_node.val:return Falsereturn is_Valid_BST(root.left, min_node, root) and is_Valid_BST(root.right, root, max_node)return is_Valid_BST(root, None, None)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719736.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼隨想錄第二十七天 455.分發餅干 376.擺動序列 53.最大子序和 122.買賣股票的最佳時機II

LeetCode 455 分發餅干 題目描述 假設你是一位很棒的家長&#xff0c;想要給你的孩子們一些小餅干。但是&#xff0c;每個孩子最多只能給一塊餅干。 對每個孩子 i&#xff0c;都有一個胃口值 g[i]&#xff0c;這是能讓孩子們滿足胃口的餅干的最小尺寸&#xff1b;并且每塊餅…

2024全國護網行動HW行動招聘/收人!!!

2024全國護網行動HW行動招聘 溯蓉信創開始收人啦&#xff01;&#xff01;&#xff01;現在開始收錄2024HW簡歷&#xff0c;感興趣的小伙伴掃碼二維碼添加微信 我們簽約后&#xff0c;入場即預付款3k&#xff0c;簽約后我們會在HW之前對我們的人員進行HW培訓&#xff0c;保證上…

Three.js--》探尋Cannon.js構建震撼的3D物理交互體驗(一)

我們用three.js可以繪制出各種酷炫的畫面&#xff0c;但是當我們想要一個更加真實的物理效果的話&#xff0c;這個時候我們就需要一個物理的庫&#xff0c;接下來我們就講解一下今天要學習的canon&#xff0c;它可以給我們提供一個更加真實的物理效果&#xff0c;像物體的張力、…

YOLOv8姿態估計實戰:訓練自己的數據集

課程鏈接&#xff1a;https://edu.csdn.net/course/detail/39355 YOLOv8 基于先前 YOLO 版本的成功&#xff0c;引入了新功能和改進&#xff0c;進一步提升性能和靈活性。YOLOv8 同時支持目標檢測和姿態估計任務。 本課程以熊貓姿態估計為例&#xff0c;將手把手地教大家使用C…

Mysql實戰(2)之MySQL執行流程

-- 查看mysql當前有多少連接 show global status like Thread%; /* Threads_cached&#xff1a;緩存中的線程連接數 Threads_connected&#xff1a;當前打開的連接數 Threads_created&#xff1a;為處理連接創建的線程數 Threads_running&#xff1a;非睡眠狀態的連接數&…

windows部署mariadb-11.3

因為需要用到數據庫來處理一些東西,所以決定在windows上安裝一下MariaDB. 隨著版本升級,安裝已經不是那么復雜了.對應的.其實網上一大堆的檢索結果,很多并不可用. 由于是開發環境,這里一切從簡了. 下載安裝包.并解壓進入bin目錄,使用mysql_install_db.exe程序來進行安裝.執行 m…

MSCKF5講:后端代碼分析

MSCKF5講&#xff1a;后端代碼分析 文章目錄 MSCKF5講&#xff1a;后端代碼分析1 初始化initialize()1.1 加載參數1.2 初始化IMU連續噪聲協方差矩陣1.3 卡方檢驗1.4 接收與訂閱話題createRosIO() 2 IMU靜止初始化3 重置resetCallback()4 featureCallback4.1 IMU初始化判斷4.2 I…

【文末送書】智能計算:原理與實踐

歡迎關注博主 Mindtechnist 或加入【智能科技社區】一起學習和分享Linux、C、C、Python、Matlab&#xff0c;機器人運動控制、多機器人協作&#xff0c;智能優化算法&#xff0c;濾波估計、多傳感器信息融合&#xff0c;機器學習&#xff0c;人工智能等相關領域的知識和技術。關…

Linux系統運維腳本:一鍵添加防火墻規則(開啟服務和網絡端口)

目 錄 一、要求 二、解決方案 &#xff08;一&#xff09;解決思路 &#xff08;二&#xff09;方案 三、腳本程序實現 &#xff08;一&#xff09;腳本代碼和解釋 1、腳本代碼 2、代碼解釋 &#xff08;二&#xff09;腳本驗證 1、腳本編輯 2、給予執行權限…

NumPy數據處理詳解的筆記2

NumPy數據處理詳解的筆記2 第1章NumPy基礎 NumPy是用于處理多維數組的數值運算庫&#xff0c;不僅可用于 機器學習&#xff0c;還可以用于圖像處理&#xff0c;語言處理等任務。 1.2 多維數據結構ndarray的基礎 在學習NumPy的過程中&#xff0c;只要理解了ndarray的相關知識…

java 關于 Object 類中的 wait 和 notify 方法。(生產者和消費者模式!)

4、關于 Object 類中的 wait 和 notify 方法。&#xff08;生產者和消費者模式&#xff01;&#xff09; 第一&#xff1a;wait 和 notify 方法不是線程對象的方法&#xff0c;是 java 中任何一個 java 對象都有的方法&#xff0c;因為這兩個方法是 Object 類中自帶的。 wait 方…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的停車位檢測系統(Python+PySide6界面+訓練代碼)

摘要&#xff1a;開發停車位檢測系統對于優化停車資源管理和提升用戶體驗至關重要。本篇博客詳細介紹了如何利用深度學習構建一個停車位檢測系統&#xff0c;并提供了完整的實現代碼。該系統基于強大的YOLOv8算法&#xff0c;并結合了YOLOv7、YOLOv6、YOLOv5的性能對比&#xf…

HarmonyOS端云體化開發—創建端云一體化開發工程

云開發工程模板 DevEco Studio目前提供了兩種云開發工程模板&#xff1a;通用云開發模板和商城模板。您可根據工程向導輕松創建端云一體化開發工程&#xff0c;并自動生成對應的代碼和資源模板。在創建端云一體化開發工程前&#xff0c;請提前了解云開發工程模板的相關信息。 …

前端學習之HTML(第一天)

什么是HTML HTML是一種用來描述網頁的一種語言&#xff0c;HTML不是一種編程語言&#xff0c;而是一種標記語言。 HTML標簽 HTML 標簽是由尖括號包圍的關鍵詞&#xff0c;比如 <html> HTML 標簽通常是成對出現的&#xff0c;比如 <b> 和 </b> 標簽對中的…

ROS 2基礎概念#3:主題(Topic)| ROS 2學習筆記

在ROS&#xff08;Robot Operating System&#xff09;中&#xff0c;主題&#xff08;Topics&#xff09;是實現節點之間通信的主要機制之一。節點&#xff08;Node&#xff09;可以發布&#xff08;publish&#xff09;消息到話題&#xff0c;或者訂閱&#xff08;subscribe&…

市場復盤總結 20240304

僅用于記錄當天的市場情況&#xff0c;用于統計交易策略的適用情況&#xff0c;以便程序回測 短線核心&#xff1a;不參與任何級別的調整&#xff0c;采用龍空龍模式 一支股票 10%的時候可以操作&#xff0c; 90%的時間適合空倉等待 二進三&#xff1a; 進級率中 20% 最常用的…

格兩例12345

osu/Lucky Roll gaming 周末osu有道題&#xff1a;lcg已知低位 def lcg(s, a, b, p):return (a * s b) % pp getPrime(floor(72.7)) a randrange(0, p) b randrange(0, p) seed randrange(0, p) print(f"{p }") print(f"{a }") print(f"{b …

冪等性設計

目錄 前言 冪等性設計 冪等性設計處理流程 HTTP 冪等性 消息隊列冪等性 基于kafka 前言 冪等性設計&#xff0c;就是說&#xff0c;一次和多次請求某一個資源應該具有同樣的副作用。為什么我們要有冪等性操作&#xff1f;說白了&#xff0c;就兩點&#xff1a;1、網絡的…

LeetCode第125場雙周賽個人題解

目錄 100231. 超過閾值的最少操作數 I 原題鏈接 思路分析 AC代碼 100232. 超過閾值的最少操作數 II 原題鏈接 思路分析 AC代碼 100226. 在帶權樹網絡中統計可連接服務器對數目 原題鏈接 思路分析 AC代碼 100210. 最大節點價值之和 原題鏈接 思路分析 AC代碼 10023…

大話C++之:對象內存模型

一般繼承(無虛函數覆蓋) 只有一個虛指針&#xff0c;指向一個虛表&#xff0c;虛函數按順序從祖先節點開始插入到虛表上。字段按順序從祖先節點開始插入到對象內存上 一般繼承(有虛函數覆蓋) 只有一個虛指針&#xff0c;指向一個虛表&#xff0c;虛函數按順序從祖先節點開始&a…