- 博客(12)
- 收藏
- 关注
原创 二叉树p1:基础知识、迭代遍历、递归遍历
什么是二叉搜索树:如果左子树不为空,则根节点的数值大于左子树任何一个节点的数值,如果右子树不为空,则根节点的数值小于任何一个右子树节点的数值,左右子树叶满足上述的条件。什么是完全二叉树:最后一层叶子结点不一定是满的,但空缺的节点只能是从最后一层的最右边开始,且要连续空缺。什么是平衡二叉搜索树:平衡二叉搜索树就是一颗任何一个节点的左右子树的高度差都不大于1的二叉搜索树。递归三要素:确定递归的参数和返回值、确定终止的条件、确定单层递归的逻辑。什么是满二叉树:深度为k,节点个数为2的k次方减一个节点的二叉树。
2024-02-27 11:55:34 217 1
原创 代码随想录 栈与队列p1
一个栈,不是操作符就压入栈,是操作符的部分再根据操作符的种类去计算,计算结果再亚入栈中要定义两个变量放两个操作数,注意他们的顺序,他们是从栈里取出来的,第二个其实是第一个。一个栈,循环字符串里的括号,要是能和栈顶的括号匹配上,那就把栈顶的括号弹出去,要是匹配不上,那就压进去,循环结束后看栈是否为空,如果是空那就是有效的括号。看给的一堆括号,是不是能两两按正确的顺序和方向配对的,顺序是左括号在左右括号在右,两个括号的方向也要和正常的括号方向一致。push,就直接push就ok。一个队列就可以实现栈。
2024-01-25 23:44:01 344
原创 代码随想录字符串p1
先计算字符串中数字的个数,对字符串进行扩充,再用双指针法,循环中两个变量,前面的指针从后往前遍历字符串,遇到数字从后往前写一个number,遇到字母就顺着写字母。最后反转单词的思路是一个循环,快慢指针,循环变量是快指针,快指针发现空格之后搞一个reverse,然后慢指针更新为空格前面的那个位置。双指针法,一个左指针在最左边,一个右指针在最右边。字符串里有很多单词,最后一个单词与第一个单词交换,倒数第二个单词和第二个单词交换,以此类推,其中单词中有多个空格的换成一个空格。这个是吧一个字符串中的后n个放前面。
2024-01-17 17:09:33 460
原创 代码随想录day5哈希表p2
之前写过的四数之和是只是输出个数,所以用map就行,但这个最后要输出的是所有满足要求的结果,我们可以采用排序+双指针的方法,因为只需要输出的是结果,而不是结果对应的下标,所以可以用排序的方法打乱原本的顺序。用map,key存前两个数组每个数组抽一个数相加之和的可能性,value存每种和可能出现的可能性的个数。用数组,遍历杂志里面的字母,每个字母出现一次,数组对应位置的值就加1,然后遍历赎金信,每个字母出现一次,数组对应位置的值就减一,最后看数组里面每一个元素中有没有负数,有负数就拼不出来。
2024-01-12 15:16:08 496 1
原创 代码随想录day4哈希表p1
一个大小为26的数组,假象每个数组位置对应每个字母的位置,数组的值代表字母的个数,循环第一个字符串的每个字符,遇到一个字母就把字母对应数组位置的值+1,循环第二个数组的时候做相反的操作,最后看整个数组是不是值全为0,不是的话两个单词就不是字母异位词。在遍历数组的时候,只需要向map去查询是否有和目前遍历元素匹配的数值,如果有,就找到的匹配对,如果没有,就把目前遍历的元素放进map中,因为map存放的就是我们访问过的元素。用一个数每一位的平方和取代这个数,如果这个数最后变成1了,那他就是快乐数。
2024-01-11 20:01:06 339
原创 代码随想录day4 链表p2
一个快指针,一个慢指针,快指针每次移动2个节点,慢指针每次移动1个节点,要是有环的话,他们一定会在环中相遇,要是没有他们就会走向null,找到环的起始点方法是,在快慢指针相遇的点定义一个index1,在头定义一个index2.让他们开始走,当他们接触的时候,他们接触的节点就是环的节点。分别遍历两个链表,找到他们的长度,根据他们的长度重新定下他们的初始头结点,然后一起往后走,当发现他们一样的时候,那就是有合二为一的点,返回这个点。想象一个链表的图片,由箭头和节点组成一串,只是把节点两两交换,节点不动。
2024-01-10 23:10:10 432
原创 代码随想录day3链表1
链表是一种由指针串联在一起的线性结构,每个被串联起来的节点有指针域与数据域,指针域存放下个节点的指针,最后一个节点的指针域指向null。
2024-01-09 20:45:05 502
原创 代码随想录 长度最小的子数组、有序数组的平方
双指针法,一个快指针一个慢指针,两个指针之间所有的数的和小于target了快指针就向前,大了慢指针向前一个,sum永远是两个指针之间的和,但不是用循环加的,是sum动态变化。双指针法,最左边一个指针,最右边一个指针,比较大小,谁大放在新的数组最后,放了之后对应的指针发生移动,就这样直到移动到两个指针重合,不过这种情况下也需要吧两个指针同时指向的那个数放进数组中。给定一个含有n个正整数的数组和一个正整数target,找出其中数组中每个元素之和大于等于target的子数组,返回其长度,如果没有就返回0.
2024-01-05 23:04:35 333 1
原创 局部变量在代码块外使用发生未定义变量的报错
原因:一开始的i 是在第十行的for循环里定义的,是局部变量,出去之后在第十五行的i就是未定义的变量了。
2023-09-22 20:00:43 237 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人