解数 随想录 随想 皇后

代码随想录算法训练营第二十七天|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 ......
随想录 训练营 总和 随想 算法

皇后问题2

#include<iostream> using namespace std; int arr[10][10]; //用于存储棋盘以及之后的皇后摆放位置 int ans; //存储最后的答案 bool judge(int x, int y) //用于判断这个地方能否放置皇后 { int i, j; ......
皇后 问题

代码随想录Day15|二叉树III

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

代码随想录Day15|二叉树

二叉树层序遍历登场 层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。 果然看java还是很不爽,C++和python的代码简洁明了 public List<List<Integer>> resList = new ArrayList<List<Integer>>(); //DFS-- ......
随想录 随想 代码 Day 15

代码随想录算法训练营第二十三天|669. 修剪二叉搜索树

[参考链接] 669. 修剪二叉搜索树 [代码] 1 # Definition for a binary tree node. 2 # class TreeNode(object): 3 # def __init__(self, val=0, left=None, right=None): 4 # ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第二十二天|235. 二叉搜索树的最近公共祖先,701. 二叉搜索树中的插入操作

[参考链接] 235. 二叉搜索树的最近公共祖先 [注意] 1.因为是有序树,所以如果中间节点是 q 和 p 的公共祖先,那么中间节点的数组 一定是在[p, q]区间的。即中节点 > p && 中节点 < q 或者 中节点 > q && 中节点 < p。 2.那么只要从上到下去遍历,遇到 cur节点 ......
随想录 训练营 祖先 随想 算法

八皇后 问题

#include<cstdio> using namespace std; bool d[100]={0},b[100]={0},c[100]={0}; int sum=0,a[100]; int search(int); int print(); int main(){ search(1); // ......
皇后 问题

代码随想录Day14|二叉树

基本理论 https://programmercarl.com/二叉树理论基础.html#二叉树的种类 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并 ......
随想录 随想 代码 Day 14

代码随想录12|栈和队列

239. 滑动窗口最大值 这是使用单调队列的经典题目。 此时我们需要一个队列,这个队列呢,放进去窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动之后,队列告诉我们里面的最大值是什么。 每次窗口移动的时候,调用que.pop(滑动窗口中移除元素的数值),que.push(滑动窗口添加元素的数 ......
随想录 队列 随想 代码

代码随想录算法训练营第二十一天|530. 二叉搜索树的最小绝对差、

【参考链接】 530. 二叉搜索树的最小绝对差 【注意】 1.二叉搜索树采用中序遍历,其实就是一个有序数组。 2.使用双指针,更快。 【代码】 1 # Definition for a binary tree node. 2 # class TreeNode(object): 3 # def __i ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第21天 | ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先 - 第6章 二叉树 part07

第六章 二叉树part07 今日内容 详细布置 530.二叉搜索树的最小绝对差 需要领悟一下二叉树遍历上双指针操作,优先掌握递归 题目链接/文章讲解: 视频讲解: 501.二叉搜索树中的众数 和 530差不多双指针思路,不过 这里涉及到一个很巧妙的代码技巧。 可以先自己做做看,然后看我的视频讲解。 ......
随想录 训练营 祖先 随想 算法

代码随想录算法训练营第20天 | ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 - 第6章 二叉树 part06

第六章 二叉树 part06 今日内容 ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 详细布置 654.最大二叉树 又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第18天 | ● 513.找树左下角的值 ● 112. 路径总和 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 - 第6章 二叉树 part05

第六章 二叉树 part05 今日内容 ● 513.找树左下角的值 ● 112. 路径总和 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 详细布置 找树左下角的值 本地递归偏难,反而迭代简单属于模板题, 两种方法掌握一下 题目链接/文章讲解 ......
总和 序列 路径 随想录 训练营

代码随想录算法训练营第17天 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和 - 第6章 二叉树 part04

第六章 二叉树part04 今日内容: ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和 详细布置 迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。 110.平衡二叉树 (优先掌握递归) 再一次涉及到,什么是高度,什么是深度,可以巩固一下。 题目链接/文章讲解 ......
随想录 之和 训练营 随想 算法

代码随想录算法训练营第17天 | ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 - 第6章 二叉树 part06

第六章 二叉树 part06 今日内容 ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树 详细布置 654.最大二叉树 又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第16天 | ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 - 第6章 二叉树 part03

第六章 二叉树part03 今日内容: ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。 详细布置 104.二叉树的最大深度 (优先掌握递归) 什么是深度,什么是高度,如 ......
深度 随想录 训练营 节点 随想

代码随想录算法训练营第15天 | ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2 - 第6章 二叉树 part02

第六章 二叉树 part02 今日内容: ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2 详细布置 层序遍历 看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大家可以很快刷了十道题。 题目链接/文章讲解/视频讲解:https://programmercarl.com/0 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第二十天|654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

【参考链接】 654. 最大二叉树 【注意】 1.构造二叉树,都需要用前序遍历。 2.二叉树的根是数组中的最大元素。 3.没必要构造新数组,通过下标控制左右区间。运行效率会高很多。 【代码】 1 # Definition for a binary tree node. 2 # class TreeN ......
随想录 训练营 随想 算法 代码

编程随想曲周刊(第30期)

这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 # 工具 1. [我C,最好用的AI工具居然是它!](https://mp.weixin.qq.com/s/hnBMRyd8EC5S_83CdtQVqw) # 文章 1. [那些一夜暴富的人,后来都怎么样了?](https://m ......
随想曲 随想 周刊

代码随想录Day11|栈和队列

20. 有效的括号 经典的利用栈的题目 这里选择用java来写,注意我们的java中的泛型不能用基本数据类型,而是应该使用包装类 注意!java一定是定义后需要声明,然后才能使用 1047. 删除字符串中的所有相邻重复项 略 比较简单 150. 逆波兰表达式求值 注意:leetcode 内置jdk的 ......
随想录 队列 随想 代码 Day

代码随想录算法训练营第十八天|513. 找树左下角的值、112. 路径总和

【参考链接】 513. 找树左下角的值 【注意】 1.用递归的话就就一直向左遍历,但是到最后一个,它未必是最后一行。是要找到树的最后一行的最左边的值。(不一定是指是左孩子) 2.如果使用递归法,如何判断是最后一行呢,其实就是深度最大的叶子节点一定是最后一行。 3.只要是优先遍历左都可以,所以前中后序 ......
随想录 训练营 总和 随想 算法

代码随想录Day10|栈与队列

那么我这里再列出四个关于栈的问题,大家可以思考一下。以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。 C++中stack 是容器么? 我们使用的stack是属于哪个版本的STL? 我们使用的STL中stack是如何实现的? stack 提供迭代器来遍 ......
随想录 队列 随想 代码 Day

代码随想录算法训练营第十七天|110. 平衡二叉树、257. 二叉树的所有路径

【参考链接】 110. 平衡二叉树 【注意】 1.一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 2.求高度一定要用后序遍历。 【代码】 1 # Definition for a binary tree node. 2 # class TreeNode(obj ......
随想录 训练营 随想 算法 路径

代码随想录算法训练营第十六天|104. 二叉树的最大深度、559. N 叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数

【参考链接】 104. 二叉树的最大深度 【注意】 1. 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)。 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)。 2.根节点的高度就是二叉树的 ......
深度 随想录 训练营 节点 随想

代码随想录Day9|

28. 实现 strStr() 在一个串中查找是否出现过另一个串,这是KMP的看家本领 说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。 因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP KMP主要应用在字符串匹配上。 K ......
随想录 随想 代码 Day9 Day

代码随想录算法训练营第十五天|102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

【参考链接】 102. 二叉树的层序遍历 【注意】 1.队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。 2.遍历的时候要记录队列的大小。就可以知道哪些元素是第几层的。 3.记得首先要判断 ......
随想录 训练营 随想 算法 代码

代码随想录Day8|字符串

主要是学了java的字符串用法,题目不是很难 使用 StringBuilder 类型可以节省时间,关于这个类型的添加和使用 char temp = sb.charAt(start); sb.setCharAt(start, sb.charAt(end)); sb.setCharAt(end, tem ......
随想录 字符串 随想 字符 代码

代码随想录算法训练营第十四天|144. 二叉树的前序遍历、145. 二叉树的后序遍历、94. 二叉树的中序遍历

【参考链接】 1.满二叉树,完全二叉树,二叉搜索树(有数值,有序树)。 2.平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 3.优先级队列其实是一个堆 ......
随想录 训练营 随想 算法 代码