随笔分类 -  leetcode

刷题记录
摘要:96. 不同的二叉搜索树 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3 clas 阅读全文
posted @ 2021-01-15 17:20 lzk_seven 阅读(72) 评论(0) 推荐(0)
摘要:947. 移除最多的同行或同列石头 n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。 如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。 给你一个长度为 n 的数组 stones ,其中 stones[i] = [xi, yi] 表示第 i 块石头 阅读全文
posted @ 2021-01-15 14:23 lzk_seven 阅读(110) 评论(0) 推荐(0)
摘要:98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3输出: true 递归法 # Def 阅读全文
posted @ 2021-01-14 15:52 lzk_seven 阅读(58) 评论(0) 推荐(0)
摘要:684. 冗余连接 在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数组。每一个边的元素是一对[u, 阅读全文
posted @ 2021-01-13 17:07 lzk_seven 阅读(77) 评论(0) 推荐(0)
摘要:剑指 Offer 24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 双指针,需要记录当前结点的前置结点和后置结点 # Definition for sing 阅读全文
posted @ 2021-01-12 17:40 lzk_seven 阅读(39) 评论(0) 推荐(0)
摘要:1202. 交换字符串中的元素 给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。 你可以 任意多次交换 在 pairs 中任意一对索引处的字符。 返回在经过若干次交换后,s 可以变成的按字典序最 阅读全文
posted @ 2021-01-11 12:33 lzk_seven 阅读(153) 评论(0) 推荐(0)
摘要:112. 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1返回 阅读全文
posted @ 2021-01-09 16:18 lzk_seven 阅读(69) 评论(0) 推荐(0)
摘要:122. 买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3 阅读全文
posted @ 2021-01-09 16:03 lzk_seven 阅读(53) 评论(0) 推荐(0)
摘要:121. 买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4]输出: 5解释: 在第 阅读全文
posted @ 2021-01-09 15:47 lzk_seven 阅读(53) 评论(0) 推荐(0)
摘要:给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7] 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems 阅读全文
posted @ 2021-01-09 14:23 lzk_seven 阅读(83) 评论(0) 推荐(0)
摘要:class Solution: def sumNumbers(self, root: TreeNode) -> int: def sums(root,pre): if not root: return 0 total=pre*10+root.val if not root.left and not 阅读全文
posted @ 2020-10-29 09:24 lzk_seven 阅读(91) 评论(0) 推荐(0)
摘要:1 class Solution: 2 def binaryTreePaths(self, root: TreeNode) -> List[str]: 3 def binaryTree(root,path): 4 if root: 5 path+=str(root.val) 6 if not roo 阅读全文
posted @ 2020-10-13 11:02 lzk_seven 阅读(130) 评论(0) 推荐(0)
摘要:本次使用的递归思想是非常基础且重要的。思路就是首先从数组的中间位置建立跟节点,然后元素左边的递归建立左子树,元素右边递归建立右子树。 1 class Solution: 2 def sortedArrayToBST(self, nums: List[int]) -> TreeNode: 3 if n 阅读全文
posted @ 2020-09-16 14:51 lzk_seven 阅读(247) 评论(0) 推荐(0)
摘要:leetcode 226翻转二叉树(剑指offer.二叉树的镜像) 初级递归 1 class Solution: 2 def invertTree(self, root: TreeNode) -> TreeNode: 3 if not root: 4 return 5 root.left,root. 阅读全文
posted @ 2020-09-16 14:39 lzk_seven 阅读(371) 评论(0) 推荐(0)
摘要:二叉树先序遍历(leetcode No.144): 普通,常用版,递归 1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.le 阅读全文
posted @ 2020-09-15 17:16 lzk_seven 阅读(175) 评论(0) 推荐(0)