自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 代码随想录算法训练营Day23 | 回溯算法 39.组和总和 40.组合总和 131.分割回文串(较难)

回溯算法 39.组和总和 40.组合总和 131.分割回文串(较难) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。

2024-08-07 14:49:58 310

原创 代码随想录算法训练营Day22 | 回溯算法理论基础 77. 组合 216.组合总和III 17.电话号码的字母组合

有递归就有回溯,回溯包含在递归函数下。回溯的效率并不高,回溯的本质就是穷举所有可能,选出想要的答案。这些问题都可以抽象为树形结构。因为回溯法解决的都是在集合中递归查找子集,。

2024-07-31 18:30:00 451

原创 代码随想录算法训练营Day21 | 二叉树 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L)。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。

2024-07-31 10:00:00 408

原创 代码随想录算法训练营Day20 | 二叉树 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

二叉树 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

2024-07-30 19:00:00 861

原创 代码随想录算法训练营Day19 | 二叉树 530.二叉搜索树的最小绝对差 501.二叉搜索树种的众数 236.二叉树的最近公共祖先

最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。tips:树中至少有2个节点。二叉搜索树是有序的。236. 二叉树的最近公共祖先。

2024-07-30 14:30:18 432

原创 代码随想录算法训练营Day18 | 二叉树 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索

二叉树 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 给定一个不含重复元素的整数数组。通过给定的数组构建最大二叉树,并且输出这个树的根节点。

2024-07-22 20:23:27 361

原创 代码随想录算法训练营Day16 | 二叉树 513.找树左下角的值 112.路径总和 106.从中序与后续遍历序列构造二叉树

二叉树。513.找树左下角的值 112.路径总和 106.从中序与后续遍历序列构造二叉树给定一个二叉树,在树的最后一行找到最左边的值。在树的最后一行找到最左边的值。

2024-07-21 19:16:33 508

原创 代码随想录算法训练营Day15 | 二叉树 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。# 什么是高度?什么是深度?返回 True返回 False。

2024-07-21 00:19:38 658

原创 代码随想录算法训练营Day14 | 二叉树 226.翻转二叉树 101.对称二叉树 二叉树的最大深度 二叉树的最小深度

如果node左子树不为空,则将左子树根节点压入栈中。如果node右子树不为空,则将右子树根节点压入栈中。递归调用 invertTree 方法,反转当前节点的左子树。递归调用 invertTree 方法,反转当前节点的右子树。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。定义一个栈,将根节点root作为初始元素压入栈中。给定一个二叉树,检查它是否是镜像对称的。说明: 叶子节点是指没有子节点的节点。返回反转后的二叉树的根节点。

2024-07-19 16:20:59 524

原创 代码随想录算法训练营Day13 | 二叉树理论基础 二叉树的递归遍历 前序、中序、后序遍历 102.二叉树的层序遍历

① 满二叉树:顾名思义就是结点都满的二叉树。定义:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 深度为k,结点数为2^k-1的二叉树② 完全二叉树:最后一层可以不满,但最后一层从左到右结点连续。 定义:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。 ③ 二叉搜索树:有数值的有序树

2024-07-18 17:14:50 879

原创 代码随想录算法训练营Day12 | 栈与队列 150. 逆波兰表达式求值 239. 滑动窗口最大值 347.前 K 个高频元素

根据 逆波兰表示法,求表达式的值。逆波兰表达式:是一种,所谓后缀就是指运算符写在后面。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。方法:使用栈。

2024-07-11 21:38:35 480

原创 代码随想录算法训练营Day11 | 栈与队列基础 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号

栈与队列基础 栈:先进后出 empty - push - push - pop 队列:先进先出 栈和队列是(C++标准库)里面的两个数据结构。STL最旁边的三个版本:HP STL、P.J.Plauger STL、SGI STL。 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号

2024-07-11 14:53:30 405

原创 代码随想录算法训练营Day9 | 字符串 151.翻转字符串单词 28.实现strStr() KMP算法介绍

字符串 LeetCode151.翻转字符串单词 ① 解题思路:先删除多余空白; 反转整个字符串;将每个单词反转②双指针法 28.实现strStr()①前缀表法 ②暴力法 KMP算法介绍,字符串总结

2024-07-01 19:57:32 429

原创 代码随想录算法训练营Day8 | 字符串 344.反转字符串 541. 反转字符串II

反转字符串。编写一个函数,将输入的字符串反转过来。这里,在python中,可以直接调用。

2024-06-29 10:00:00 404

原创 代码随想录算法训练营Day7 | 哈希表 LeetCode454.四数相加II 383. 赎金信 15. 三数之和

(四个整数数组中,各取一个字符,四个字符相加和为0,输出这样的组合有几个。给定四个包含整数的数组列表 A , B , C , D ,计算有元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

2024-06-28 19:18:41 423

原创 代码随想录算法训练营Day6 | 哈希表理论基础 LeetCode 242. 有效的字母异位词 349.两个数组的交集 202. 快乐数 1.两数之和

哈希表,Hash table,也称散列表,是根据关键码的值而直接访问的数据结构。如,数组即为一张哈希表。哈希表,常用于:快速判断一个元素是否出现在集合里。,即将不同数据格式转化为不同数值,映射为哈希表上的索引数字。当存入内容数量大于哈希表大小时,若发生不同内容映射于哈希表同一索引下标的位置,即发生。和拉链法,将发生冲突的元素存储在同一索引的链表中;线性探测法,需要哈希表大小存入内容数量,发生冲突时,寻找哈希表中下一个空位来进行存放。:数组,set(集合),map(映射)

2024-06-27 20:17:03 943

原创 代码随想录算法训练营Day5 | LeetCode 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 02.07. 链表相交 142.环形链表II

题目:LeetCode24 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 head = [1,2,3,4] Output = [2,1,4,3] 方法:① 迭代法 ② 递归法 迭代法在 leetCode 运行会超时。 题目:LeetCode19 删除链表倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 head = [1,2,3,4,5] , n=2 Output = [1,2,3,5]

2024-06-26 14:58:52 422

原创 代码随想录算法训练营Day4 | 链表理论基础 LeetCode203.移除链表元素 707.设计链表 206.反转链表

链表基础知识:类型、操作、性能分析;移除链表元素,设置虚拟头节点;设计链表,包括六类常见的链表操作;反转链表,方法①双指针法cur,pre,temp,②递归法。

2024-06-24 20:51:22 518

原创 代码随想录算法训练营Day2 | LeetCode977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II

给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。使用双指针,res指针需要从最大值往前平移一位。输出: [ [ 1, 2, 3 ],方法:①暴力求解 ②双指针法。方法:①暴力 ②滑动窗口。

2024-06-23 21:34:09 408

原创 代码随想录算法训练营Day1 | LeetCode704. 二分查找 LeetCode27. 移除元素

使用二分查找的前提:① 数组有序排序(升序或降序) ② 无重复元素方法:①左闭右闭② 左闭右开。

2024-06-21 14:27:42 295

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除