代码编织梦想

代码随想录算法训练营第二十六天|leetcode39,40,131-爱代码爱编程

代码随想录算法训练营第二十六天|LeetCode39,40,131 39.组合总数 与上一道组合总数不同的点在于,本题提供的数组中的数值可以重复选取。所以,再次递归的时候,传入的值为i而不是i+1. 本题还需要star

代码随想录算法训练营第三十二天|leetcode122,55,45-爱代码爱编程

代码随想录算法训练营第三十二天|LeetCode122,55,45 122.买卖股票的最佳时机II 本题的思路感觉与前一天的摆动序列类似。前天是最大自序和,今天是差的和最大 如果想到其实最终利润是可以分解的,那么本题就

代码随想录算法训练营第二十四天|leetcode77-爱代码爱编程

代码随想录算法训练营第二十四天|LeetCode77 77.组合 看到题的第一思路是for循环遍历,但是没有用到回溯,用for循环会存在一个问题,当k很大的时候,会有很多很多层嵌套,不现实 参考网站上给出的思路: 回溯

代码随想录算法训练营第二十五天|leetcode216,17-爱代码爱编程

代码随想录算法训练营第二十五天|LeetCode216,17 216.组合总和III 相比于上一道题,只是多了一个sum == n的条件,在不考虑剪枝的情况下,很容易写出 考虑剪枝的条件。 已选元素总和如果已经大于n

代码随想录算法训练营第三十一天|leetcode455,376,53-爱代码爱编程

代码随想录算法训练营第三十一天|LeetCode455,376,53 Day31 理论基础 贪心最大的难处在于:不知道哪里用了贪心 有的时候题目做出来了,还不知道自己用了贪心。 贪心的本质是选择每一阶段的局部最优,

代码随想录算法训练营第二十八天|leetcode491,46,47-爱代码爱编程

代码随想录算法训练营第二十八天|LeetCode491,46,47 491.递增子序列(*) 看到这个题,与前面那道题相比,再去重的基础上,又多了几个条件:一是子集必须递增的,子集中至少有两个元素,且两个整数相等被视作递

代码随想录算法训练营第二十七天|leetcode93,78,90-爱代码爱编程

代码随想录算法训练营第二十七天|LeetCode93,78,90 93.复原 IP 地址 终止条件 终止条件和131.分割回文串 (opens new window)情况就不同了,本题明确要求只会分成4段,所以不能用切

代码随想录算法训练营第十八天|leetcode513,112,113,105,106-爱代码爱编程

代码随想录算法训练营第十八天|LeetCode513,112,113,105,106 513. 找树左下角的值 在树的最后一行找到最左边的值。 首先要是最后一行,然后是最左边的值。即深度最大的最左边的叶子节点。利用层序

【代码随想录算法训练营第16天| 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数】-爱代码爱编程

代码随想录算法训练营第16天| 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数 一. 二叉树相关算法题104.二叉树的最大深度什么是二叉树的深度与高度?后序遍历-递归思路

代码随想录算法训练营第六天|242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和-爱代码爱编程

代码随想录算法训练营第六天|242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和 一. 哈希表基础二. 哈希表相关算法题242.有效的字母异位词349.两个数组的交集用HashTabl

代码随想录算法训练营第一天|704.二分查找、27.移除元素-爱代码爱编程

代码随想录算法训练营第一天|704.二分查找、27.移除元素 一. 数组理论基础二. 数组相关算法题练习704.二分查找左闭右闭左闭右开,理解了循环不变量原则的区间控制左闭右开的思路就迎刃而解了 27.

代码随想录算法训练营第三十五天|leetcode435,763,56-爱代码爱编程

435.无重叠区间 题目要求移除区间的数量最小,是剩余区间不重复 思路: 将intervals按照第一个值的升序排序。然后跟昨天气球的思路一样 第一次错误: 重写的Comparator乜有满足自反性,传递性,对称性

代码随想录算法训练营第三十四天|leetcode860,406,452-爱代码爱编程

代码随想录算法训练营第三十四天|LeetCode860,406,452 860.柠檬水找零 第一思路: 5美元直接收下,10美元的找5美元的,20美元的先找10美元的,再找5美元的 20美元就是贪心的地方。 设置两

代码随想录算法训练营第三十三天|leetcode1005,134,135-爱代码爱编程

代码随想录算法训练营第三十三天|LeetCode1005,134,135 1005.K次取反后最大化的数组和 自己的思路: 对数组进行排序 对小于0的进行取反,如果K已经取完了,就进行求和。 如果k没有去完,则对数

代码随想录算法训练营第二十三天|leetcode669,108,538-爱代码爱编程

代码随想录算法训练营第二十三天|LeetCode669,108,538 669. 修剪二叉搜索树 通过本题可以了解到:涉及二叉树节点的插入,删除。递归函数的返回值均可以为TreeNode,方便节点的操作 确定递归函数的参

代码随想录算法训练营第二十一天|leetcode235,701,450-爱代码爱编程

代码随想录算法训练营第二十一天|LeetCode235,701,450 235.二叉搜索树的最近公共祖先 本题最主要的一点是要想到:利用搜索二叉树有序的性质。从根节点开始搜索,第一个落在[p,q]中间的节点,

代码随想录算法训练营第十九天|leetcode654,617,700,98-爱代码爱编程

代码随想录算法训练营第十九天|LeetCode654,617,700,98 654.最大二叉树 题目对于最大二叉树的定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。

代码随想录算法训练营第十七天|leetcode110,257,404-爱代码爱编程

代码随想录算法训练营第十七天|LeetCode110,257,404 110.平衡二叉树 平衡二叉树:任意节点的左右子树的高度差不大于1,既然是高度了,那么考虑后续遍历 递归法: 明确递归函数的参数和返回值 参数:当

代码随想录算法训练营第十六天|leetcode104,111,222-爱代码爱编程

代码随想录算法训练营第十六天|LeetCode104,111,222 104.二叉树的最大深度 首先要明确二叉树深度与高度的概念 深度:任意一个节点到根节点的距离,根节点的深度为1高度:任意一个节点到叶子节点的距离,叶

代码随想录算法训练营第十四天|二叉树层序遍历,leetcode226,101-爱代码爱编程

代码随想录算法训练营第十四天|二叉树层序遍历,LeetCode226,101 层序遍历 借助队列,保存每层遍历过的元素,队列的size就代表二叉树这一层有多少元素 队列模拟过程: 初始阶段:将根节点加入队列: 迭代