摘要:
leetcode-225 用队列实现栈 1.题目 使用队列的基本操作实现栈的共,可以使用list或者双端队列deque 2.解题方法 使用vector实现,维持一个top数值代表栈顶元素的index,每次插入、删除元素会导致top元素的变化 使用deque实现时,原理同vector,插入和删除元素都 阅读全文
摘要:
leetcode-121 买卖股票的最佳时机 题目: 给定一数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易 阅读全文
摘要:
leetcode-111 二叉树的最大(最小深度) 二叉树的最小深度,指的是从根节点到最近叶子节点最短路径的节点数量 二叉树的最大深度,指的是从根节点到最远叶子节点的最长路径的节点数量 解决方法: 使用递归的方法,从叶子节点开始累加, 对于二叉树的最小深度,当一个节点的左子树为空时,最小深度为其右子 阅读全文
摘要:
Leetcode-108 将有序数组转换为二叉搜索树 题目 给定一个数组,将其转换为二叉搜索树。 二叉搜索树特点: 父节点元素大于左子节点元素,小于右子节点元素 是一颗平衡二叉树,即每个元素的左右子树高度差的绝对值不超过1 解题思路 一个元素一个元素地插入至二叉搜索树中,每插入一个元素,二叉树需要重 阅读全文
摘要:
leetcode-110 平衡二叉树 平衡二叉树特点:在二叉树中,每个节点的左右子树高度只差小于等于1 遍历二叉树中的每个节点 计算每个节点的左右子树高度 class Solution: def isBalanced(self, root: TreeNode) -> bool: if not roo 阅读全文
摘要:
leetcode-107 二叉树的层次遍历 1. 二叉树的层次遍历,即通过使用队列的方法(可用数组代替),每次存储某一层的所有节点,然后在一个for循环中遍历该节点,将所有节点的子节点入队,并记录下所有节点的值,将他们堆入栈中。 2. example 根节点入队 cur=[3],res=[[3]] 阅读全文
摘要:
leetcode-96 不同的二叉搜索树 解题思路 对于从1-n所有的二叉搜索树,共有n种(每种的顶点相同) 设Fn为从1-i的以n为根的二叉搜索树的个数 dp[n]为1-i的所有的二叉搜索树的个数 对于以i为根的二叉搜索树,它的左子树共有Fn[i-1]种,右子树共有Fn[n-i-1]种,则以i为根 阅读全文
摘要:
LeetCode-53 最大子序和 1.暴力求解 遍历数组。分别求出每个子序列的和,再求最大值。 Time Limit Exceeded class Solution: def maxSubArray(self, nums: List[int]) -> int: max=-float('in 阅读全文
摘要:
LeetCode-53 实现strStr() 1. 题目 实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明: 当 needle 是 阅读全文