- 博客(10)
- 收藏
- 关注
原创 第十四天:二叉树part02|226.翻转二叉树、 101. 对称二叉树 、104.二叉树的最大深度、111.二叉树的最小深度
给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。[2,3,1]root = [][]思路:如上图所示,第一个节点4有左右子树,交换左右子树的位置,然后节点7有两个字节点,交换子节点的位置,节点2有两个子节点,交换位置。这样就反转完成了。
2025-02-18 19:57:41
634
原创 第十二天:二叉树|理论基础、递归遍历 、层序遍历
满二叉树:满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。完全二叉树:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。二叉搜索树:前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具
2025-02-11 16:20:43
958
原创 第九天:字符串part02|151.翻转字符串里的单词、卡码网:55.右旋转字符串、28. 实现 strStr()、459.重复的子字符串
给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world!输出: "world!hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
2025-02-05 21:54:26
625
原创 第八天:字符串part01|字符串理论基础、344.反转字符串、541. 反转字符串II、卡码网:54.替换数字
定义:字符串是一个有序的字符集合,用于存储和表示基本的文本信息。
2025-02-05 14:31:09
663
原创 第七天:哈希表part02| 454.四数相加II 、383. 赎金信、15. 三数之和、18. 四数之和
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。输出:2思路:使用暴力求解的话需要使用四层for循环,因此可以考虑使用字典。
2025-02-04 20:55:43
1012
原创 第六天:哈希表part01|哈希表理论基础、242.有效的字母异位词、 349. 两个数组的交集、202. 快乐数、1. 两数之和
首先什么是哈希表,哈希表(英文名字为Hash table)。哈希表是根据关键码的值而直接进行访问的数据结构。直白来说,数组就是一个哈希表。
2025-01-27 16:12:52
992
原创 第四天:链表part04|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
142.环形链表II给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。思路:使用虚拟头结点的话,交换节点会变得方便很多。
2025-01-25 15:42:49
816
原创 第三天:链表part01| 链表理论基础 、203.移除链表元素、707.设计链表 、 206.反转链表
链表是通过指针串联在一起的线性结构,每个节点由两部分组成,数据域和指针域,数据域是存放该节点的数值,指针域是存放指向下一个节点的指针。链表的第一个节点成为链表的头结点(head)如图所示:单链表:上述所说就是单链表双链表:每个节点有两个指针,前边一个后边一个,前边的指向前一个节点,后边的指向后一个节点。如图所示:循环链表:链表的首尾相连,可以解决约瑟夫环问题数组是在内存空间中连续分布的,但是链表不是连续分布的,链表是通过指针把每个节点连在一起如图所示:这个链表的起始节点是2,终止节点是7,每个节点通过指针连
2025-01-24 15:57:47
1077
原创 第二天:数组part02|209.长度最小的子数组、 59.螺旋矩阵II
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。可以采用的方法求解。所谓滑动窗口就是不断调节子序列的起始位置和终止位置,从而得到想要的结果。定义两个指针i,j。i表示滑动窗口的起始位置,j表示滑动窗口的终止位置。
2025-01-23 16:36:52
843
原创 第一天:数组part01|数组理论基础、704.二分查找、27.移除元素、977.有序数组平方
数组是非常基础的数据结构,想要了解数组,首先要了解数组在内存中的存储方式。例如:因为数组元素的地址都是连续的,所以在删除或者添加元素时,难免要移动元素其他元素的地址。删除元素时,其实不是删除,而是向前覆盖(当删除数组中的一个元素时,删除后该元素后面的元素的地址都要向前移动,所以说删除元素就是把该元素后面的元素一个一个向前移动覆盖前一个元素)
2025-01-22 15:49:08
716
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅