随想

代码随想录|二叉树总结

涉及到二叉树的构造,无论普通二叉树还是二叉搜索树一定前序,都是先构造中节点。 求普通二叉树的属性,一般是后序,一般要通过递归函数的返回值做计算。 求二叉搜索树的属性,一定是中序了,要不白瞎了有序性了。 ......
随想录 随想 代码

代码随想录|二叉树(最后一章)

530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇 53 ......
随想录 随想 代码

代码随想录算法训练营第六天| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

454.四数相加II 1,难点: 1,多个数组之间,会有重复出现的数组,如果单用multiset也是会出错的 2,如果用mutliset,在使用 distance 找出来 equal_range的值的时候,也是会出现奇怪的错误的 2,正确思路 1,把重复出现的节点,次数 存放到map种,然后进行遍历 ......
之和 随想录 训练营 随想 算法

代码随想录算法训练营第32天 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II - 第8章 回溯算法part02

第八章 贪心算法 part02 ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II 详细布置 122.买卖股票的最佳时机II 本题解法很巧妙,大家可以看题思考一下,在看题解。 https://programmercarl.com/0122.%E4%B9%B0%E5%8D ......
算法 随想录 训练营 随想 时机

代码随想录算法训练营第35天 | ● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球 - 第8章 回溯算法part04

第八章 贪心算法 part04 ● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球 详细布置 860.柠檬水找零 本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。 https://programmercarl.com/0860.%E6%9F%A0%E6% ......
算法 随想录 柠檬水 队列 训练营

代码随想录算法训练营第34天 | ● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果 - 第8章 回溯算法part03

第八章 贪心算法 part03 ● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果 详细布置 1005.K次取反后最大化的数组和 本题简单一些,估计大家不用想着贪心 ,用自己直觉也会有思路。 https://programmercarl.com/1005.K%E6% ......
算法 随想录 训练营 数组 随想

代码随想录算法训练营第30天 | ● 332.重新安排行程 ● 51. N皇后 ● 37. 解数独 ● 总结 - 第7章 回溯算法part06

第七章 回溯算法part06 ● 332.重新安排行程 ● 51. N皇后 ● 37. 解数独 ● 总结 详细布置 今天这三道题都非常难,那么这么难的题,为啥一天做三道? 因为 一刷 也不求大家能把这么难的问题解决,所以 大家一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码,先 ......
算法 解数 随想录 训练营 随想

代码随想录算法训练营第31天 | ● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 - 第7章 回溯算法part01

第八章 贪心算法 part01 ● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 贪心算法其实就是没有什么规律可言,所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律, 没有思路就立刻看题解。 基本贪心的题目 有两个极端,要不就是特简单,要 ......
算法 随想录 训练营 序列 饼干

代码随想录算法训练营第27天 | ● 93.复原IP地址 ● 78.子集 ● 90.子集II - 第7章 回溯算法part04

28 第七章 回溯算法 ● 93.复原IP地址 ● 78.子集 ● 90.子集II 详细布置 93.复原IP地址 本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8 ......
子集 算法 随想录 训练营 随想

代码随想录算法训练营第26天 | ● 39. 组合总和 ● 40.组合总和II ● 131.分割回文串 - 第7章 回溯算法part03

第七章 回溯算法part03 ● 39. 组合总和 ● 40.组合总和II ● 131.分割回文串 详细布置 39. 组合总和 本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制 题目链接/文章讲解:https://programmercarl.com/0 ......
总和 算法 随想录 回文 训练营

代码随想录算法训练营第28天 | * 491.递增子序列 * 46.全排列 * 47.全排列 II - 第7章 回溯算法part05

第七章 回溯算法part05 * 491.递增子序列 * 46.全排列 * 47.全排列 II 详细布置 491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.%E9%80%92%E5%A2%9E ......
算法 随想录 训练营 序列 随想

代码随想录算法训练营第24天 | ● 理论基础 ● 77. 组合 - 第7章 回溯算法part01

第七章 回溯算法part01 今日内容: ● 理论基础 ● 77. 组合 详细布置 理论基础 其实在讲解二叉树的时候,就给大家介绍过回溯,这次正式开启回溯算法,大家可以先看视频,对回溯算法有一个整体的了解。 题目链接/文章讲解:https://programmercarl.com/%E5%9B%9E ......
算法 随想录 训练营 随想 理论

代码随想录算法训练营第25天 | ● 216.组合总和III ● 17.电话号码的字母组合 - 第7章 回溯算法part02

第七章 回溯算法part02 今日内容: ● 216.组合总和III ● 17.电话号码的字母组合 详细布置 216.组合总和III 如果把 组合问题理解了,本题就容易一些了。 题目链接/文章讲解:https://programmercarl.com/0216.%E7%BB%84%E5%90%88% ......
算法 随想录 训练营 总和 随想

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

242.有效的字母异位词 繁冗版: 1,思路: 先建立两个map,对应两个字符串对应的字符,同时对他们进行计数,如果这两个数字相等,那么就是相等 2,代码 1 bool isAnagram_complicate(string s, string t) 2 { 3 unordered_map<char ......
随想录 之和 训练营 数组 交集

代码随想录day06

第三章 哈希表part01 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 242.有效的字母异位词 注意点:字符串长度表示方法 s.length()要带括号 字符串取字符 s.charAt( ......
随想录 随想 代码 day 06

代码随想录day04

第二章 链表part02 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II 24. 两两交换链表中的节点 虚拟头节点 /** * Definition for singly-linked list. * public class Li ......
随想录 随想 代码 day 04

代码随想录算法训练营第四天|24. 两两交换链表中的节点 , 19.删除链表的倒数第N个节点 , 面试题 02.07. 链表相交 , 142.环形链表II

24. 两两交换链表中的节点 个人感觉这个不太难,刚开始打算用步进值为2,来搞,但是没有想到链表应该是怎么样的,原来可以直接用: 1 cur = cur->next->next 学到了,这是我自己写的代码: 1 ListNode* MyLinkedList::swapPairs(ListNode* ......
节点 随想录 环形 训练营 随想

代码随想录算法训练营第三天| 203.移除链表元素 、 707.设计链表 、206.反转链表

链表的构造: link.h: 1 #ifndef LINK_H 2 #define LINK_H 3 #include<vector> 4 5 struct ListNode { 6 int val; 7 ListNode* next; 8 ListNode() :val(0), next(null ......
随想录 训练营 随想 算法 元素

代码随想录day03

第二章 链表part01 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表 203.移除链表元素 虚拟头结点 /** * Definition for singly-linked list. * public class ListNode { * int val; * List ......
随想录 随想 代码 day 03

代码随想录算法训练营第二天| 977.有序数组的平方 、 209.长度最小的子数组、59.螺旋矩阵II

977.有序数组的平方 1,因为是有序数组,所以会导致,两边大,中间小 2,又因为要排序所以可以仿照这个特点 3,从首尾两端,进行排序 代码: 1 //平方之后,列顺序 从低到高 2 vector<int> sortedSquares(vector<int>& nums) 3 { 4 vector< ......
数组 随想录 训练营 矩阵 螺旋

代码随想录day02

第一章 数组part02 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 977.有序数组的平方 双指针法,平方数组为两边大中间小。 209.长度最小的子数组 第一想法暴力两个for循环。 学习双指针的滑动窗口法。 59.螺旋矩阵II 坚持循环不变量原则,左闭右开。 这道题 ......
随想录 随想 代码 day 02

随想

注意到,“金属构件在高温长时间作用下,即使其应力值小于屈服强度,也会缓慢产生塑性变形”。高温既可能将金属铸造成优秀的形状,也可能把它变的扭曲,甚至还会把原本包裹着的杂质完全暴露出来。 这导致在一些铁匠铺,出现了以下情况: 当发现金属里有杂质的居多时,反而是杂质确立了金属的特点;当然这点可能也与金属数 ......
随想

代码随想录day01

第一章 数组part01 数组理论基础,704. 二分查找,27. 移除元素 704.二分查找 https://leetcode.cn/problems/binary-search/description/ 习惯了左闭右闭,终止条件带'='号。 27.移除元素 https://leetcode.cn ......
随想录 随想 代码 day 01

代码随想录Day19|二叉树(六)

今日任务 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树 654.最大二叉树 当不确定一个新的解决方案是否正确的时候 请优先使用暴力解的方式 /** * Definition for a binary tree node. * public class Tr ......
随想录 随想 代码 Day 19

代码随想录算法训练营第二十八天|93. 复原 IP 地址

【参考链接】 93. 复原 IP 地址 【注意】 1.切割问题就可以使用回溯搜索法把所有可能性搜出来。 2.startIndex一定是需要的,因为不能重复分割,记录下一层递归分割的起始位置。 3.本题我们还需要一个变量pointNum,记录添加逗点的数量。 4.分割的段数作为终止条件。pointNu ......
随想录 训练营 随想 算法 代码

代码随想录Day17|二叉树(五)

今日任务 513.找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 100.相同的树 572.另一个树的子树 513.找树左下角的值 层序遍历 /** * Definition for a binary tree ......
随想录 随想 代码 Day 17

代码随想录算法训练营第二十七天|39. 组合总和,40. 组合总和 II,131. 分割回文串

【参考链接】 39. 组合总和 【注意】 1.candidates 中的数字可以无限制重复被选取。 2.在for循环中进行剪枝。剪枝前需要对数组进行排序。 【代码】 1 class Solution(object): 2 def __init__(self): 3 self.path = [] 4 ......
总和 随想录 回文 训练营 随想

代码随想录day16| 二叉树(四)

110.平衡二叉树 递归法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeN ......
随想录 随想 代码 day 16

代码随想录算法训练营第二十五天|216. 组合总和 III、17. 电话号码的字母组合

【参考连接】 216. 组合总和 III 【注意】 1.组合不强调元素之间的顺序。 【代码】 1 class Solution(object): 2 def __init__(self): 3 self.res = [] 4 self.sum_now = 0 5 self.path = [] 6 d ......
随想录 训练营 总和 随想 算法

代码随想录Day15|二叉树III

104.二叉树的最大深度 递归法 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始) 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数 ......
随想录 随想 代码 Day III