随笔分类 - LeetCode_DP
摘要:方法一 中心扩散法 解析: 回文串一定是 中心对称的,回文串的对称中心可能是 1 个字符,也可能是 2个字符,遍历 s 中的 字符 分别以 s[i] 和s[i] 、s[i+1] 为中心像两边扩散,记录 最长 回文串的 起始位置 和长度。 时间 O(n ^ 2) 空间 O(1) 代码: 1 //方法一
阅读全文
摘要:解析: ,以上图的示例1为例,三角形 有 4 行。行号 0,1,2,3 ;最后一行每个数(4,1,8,3) 到三角形底部的路径就是其自身的值。 1. 定义状态 dp[i][j] 表示 元素 triangle[i][j] 到三角形底部的路径。 2. 状态转移方程 :dp[i][j] = min(dp[
阅读全文
摘要:解析:参考 LeetCode 评论区 liweiwei1419 大神的题解 https://leetcode-cn.com/problems/maximum-product-subarray/solution/dong-tai-gui-hua-li-jie-wu-hou-xiao-xing-by-l
阅读全文
摘要:题目描述: 解析: 参考 VV大神 的题解: https://leetcode-cn.com/problems/longest-increasing-subsequence/solution/dong-tai-gui-hua-er-fen-cha-zhao-tan-xin-suan-fa-p/ 方法
阅读全文
摘要:题目描述: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 方法一: 回溯 + 剪枝 将 生成 n 对 有效括号的过程就是在一棵剪枝了的二叉树上遍历的过程。下图是 n = 3 的情况。 从上面的图片中我们可以很明显的看到,最后五条画黑线的叶节点就是最终
阅读全文
摘要:题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 1. 定义状态 经典动态规划问题,定义 dp[i] : nums中以nums[i] 结尾的具有最大和的连续子数组。取dp[i] ( 0=< i < n)的 最大值即可得到最终结果。 2
阅读全文
摘要:题目是这样:你面前有一栋从 1 到 N 共 N 层的楼,然后给你 K 个鸡蛋(K 至少为 1)。 现在确定这栋楼存在楼层 0 <= F <= N,在这层楼将鸡蛋扔下去,鸡蛋恰好没摔碎 (高于 F 的楼层都会碎,低于 F 的楼层都不会碎)。现在问你,最坏情况下,你至少 要扔几次鸡蛋,才能确定这个楼层
阅读全文
摘要:方法一: 动态规划 时间:O(n*n) 空间 :O(n) 动态规划的核心设计思想是数学归纳法。 数学归纳法思想: 比如我们想证明一个数学结论,那么我们先假设这个结论在 k<n 时成立,然后根据这个假设, 想办法推导证明出 k=n 的时候此结论也成立。如果能够证明出来,那么就说明这个结论对于 k 等于
阅读全文
摘要:Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. Example 1: Input:
阅读全文
摘要:CategoryDifficultyLikesDislikes algorithms Easy (55.00%) 1235 - TagsCompanies 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你
阅读全文
摘要:CategoryDifficultyLikesDislikes algorithms Medium (62.81%) 407 - TagsCompanies 给定一个整数 n,生成所有由 1 ... n 为节点所组成的 二叉搜索树 。 示例:输入:3输出: [ [1,null,3,2], [3,2,
阅读全文
摘要:思路 标签:动态规划 假设n个节点存在二叉排序树的个数是G(n),令f(i)为以i为根的二叉搜索树的个数,则 G(n)=f(1)+f(2)+f(3)+f(4)+...+f(n) 当i为根节点时,其左子树节点个数为i-1个,右子树节点为n-i,则 f(i)=G(i−1)∗G(n−i) 综合两个公式可以
阅读全文
摘要:1.暴力法: 本题让求给定字符串的最长的无重复字符的子串,首先想到暴力解法,穷举出字符串的所有子串,并判断每个子串是否是不重复子串,具体使用hashset或set判是否有重复字符;暴力法效率很差,时间O(n^3),空间O(n);参考代码如下: 1 class Solution { 2 public:
阅读全文
摘要:Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. Example: Inpu
阅读全文

浙公网安备 33010602011771号