代码编织梦想

leetcode刷题 log day 57-爱代码爱编程

647. 回文子串 【思路】 var countSubstrings = function(s) { let dp = new Array(s.length).fill().map(() => Array(s.

leetcode刷题 log day56(编辑距离总结篇~-爱代码爱编程

583. 两个字符串的删除操作 【思路】这道题只有删除操作,两个字符串相等时,步数不变,不相等时,只能做删除操作,删除有三种情况:删除 word1 或删除 word2 或者两个字符串都删除,取三种情况的最小值。 var m

leetcode 刷题 log day 49-爱代码爱编程

121. 买卖股票的最佳时机 【思路】每天只有两种状态:持有股票或者不持有股票,持有股票时又分为前一天不持有买入股票和前一天持有股票保持两种情况。不持有股票也分为前一天持有股票卖出和前一天不持有股票保持两种情况。分别选取每

leetcode 刷题 log day 48(打家劫舍问题-爱代码爱编程

198. 打家劫舍 【思路】当前房屋偷不偷,取决于上一个房间和上上个房间的状态,上一个房间偷了,这个房间就不能偷,所以也属于动规问题。 确定递推公式含义:dp[i] 表示考虑完第 i 个房间时偷盗的最大金额;确定递推

leetcode 刷题 log day 42-爱代码爱编程

【标准的背包问题】有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 eg:weight = [1,

leetcode 刷题 log day 29_letcode log-爱代码爱编程

【总结】判断是否重复的两种方法: 1. 题目不要求顺序:使用 used 数组记录是否遍历过元素相同的值 2. 题目对顺序有要求:创建 set 实例,记录每一个遍历过的元素的值,每次遍历之前判断是否已经遍历过相同的值(这种方法

leetcode刷题 log day 28-爱代码爱编程

【感悟】写题越来越快啦,而且可以自己写出来了,每天努力一点点,真的可以慢慢变厉害!希望看到我的 blog 的有缘人也可以努力,真的没有想象中的难! 93.复原IP地址 【思路】这道题的重点在于在哪加 . ,递归的起始位置

leetcode 刷题log day20_leetcode 求 log 的-爱代码爱编程

【知识点总结】构造树一般采用前序遍历,先构造中间节点。然后构造左子树和右子树。搜索树的题目要用中序遍历来做,因为搜索树的中序遍历数组是单调递增数组。 654. 最大二叉树 【思路】找到最大值确立了根节点之后就确定了左右子

leetcode 刷题 log day21-爱代码爱编程

【解题技巧】凡是求二叉树中的一个值(最大值 or 最小值 or 求和)之类的,都可以先设定一个初始值,遍历的同时进行比较覆盖,把值实时记录下来,等遍历完,就可以得到我们想求的值,和双指针法结合起来一起用可达到事半功倍的效果。

leetcode刷题log day17-爱代码爱编程

【知识点总结】如果是模拟前中后序遍历就用栈,如果是适合层序遍历就用队列。 110. 平衡二叉树 【思路】比较高度,要从子节点开始比较,所以使用后序遍历。如何判断以当前传入节点为根节点的二叉树是否是平衡二叉树呢?可以用其左

leetcode 刷题 log day 25-爱代码爱编程

216. 组合总和 III 【思路】相比于上一道求组和的题,多了一个判断条件:和,所以要在判断 k 的时候加上判断和是否相等。 var combinationSum3 = function(k, n) { let

leetcode 刷题log day18_leetcode实现log-爱代码爱编程

513.找树左下角的值 【思路】记录每一层左下角的值,层层覆盖,最后返回的值就是树左下角的值。 // 递归 var findBottomLeftValue = function(root) { let resNode,

leetcode 刷题记录 day11-爱代码爱编程

● 20. 有效的括号 【思路】操作相邻的元素时,可以想到用栈来操作。编译器在词法分析处理括号的逻辑中也是使用了栈这种数据结构。分析可知,不匹配有三种情况,左边括号多、右边括号多、左右括号数量相等但是不同的括号。根据栈的先进

leetcode 刷题 log day58(单调栈开始~-爱代码爱编程

739. 每日温度 【思路】利用单调栈的方法,每次的三个判断条件: 当前遍历元素 < 栈顶元素:当前元素入栈;当前遍历元素 = 栈顶元素:当前元素入栈;当前元素 > 栈顶元素:弹出栈顶元素 —> r

leetcode 刷题 log day60(最后一天啦!_音音子-的博客-爱代码爱编程

84. 柱状图中最大的矩形 【思路】明天写!今天粗去逛! //动态规划 js中运行速度最快 var largestRectangleArea = function(heights) { const len = he

leetcode 刷题 log day 59_音音子-的博客-爱代码爱编程

42. 接雨水 【思路】 双指针解法:只是单纯的、直接的、麻烦的、客观的、所有的找到了每个元素左边的最高点和右边的最高点,而当前元素能装的雨水又取决于两边最高点的最低点(最低点 - 当前元素的值),遍历所有元素计算每

leetcode 刷题 log day55_音音子-的博客-爱代码爱编程

392. 判断子序列 【思路】 var isSubsequence = function(s, t) { let dp = new Array(t.length + 1).fill().map(() => Arr

leetcode 刷题 log day 53_音音子-的博客-爱代码爱编程

1143. 最长公共子序列 【思路】分别遍历两个数组,如果元素相等,长度 +1,长度不相等,就比较两个数组的前一个元素哪个最长公共子序列长。 var longestCommonSubsequence = function(

leetcode 刷题 log day 51(股票总结_音音子-的博客-爱代码爱编程

309. 最佳买卖股票时机含冷冻期 【思路】套路就是考虑有几种状态:买入、卖出、冷冻期。但是卖出又分两种状态;前两天已经卖出过了冷冻期和今天卖出,所以有四种状态,取结果的时候也要考虑在冷冻期的状态,因为也是卖出了有收益。

leetcode 刷题 log day 50(继续股票专题_音音子-的博客-爱代码爱编程

123. 买卖股票的最佳时机III 【思路】这次的难点在于限定了买卖的次数,只能买卖两次,那么就会有五种情况: 1. 不操作:dp[i][0] = dp[i - 1] 2. 第一次买入:dp[i][1] = dp[i -