摘要: 二叉树理论基础 分类 满二叉树:只有度为0和度为2的结点,且度为0结点在同一层上(每一层的结点都是满的)。 完全二叉树:除了底层外其他层结点都是满的(底层当然也可以是满的),且底层结点从左往右连续不断。 二叉搜索树: 树的每个结点满足: 左子树所有结点值均小于根结点的值 右子树所有结点值均大于根结点 阅读全文
posted @ 2024-02-06 21:13 Tazdingo 阅读(1880) 评论(0) 推荐(0)
摘要: 滑动窗口最大值 leetcode:239. 滑动窗口最大值 第一个hard!work out!资源占用竟然如此之大,, 单调队列法 思路 需要一个抽象的类队列数据结构,每轮移动时:1. 把队首pop;2.把下一元素push进队尾;3.获取队列最大值存入数组。 pop实现:每次移动时尝试(说“尝试”是 阅读全文
posted @ 2024-02-05 23:40 Tazdingo 阅读(1905) 评论(0) 推荐(0)
摘要: 有效的括号 leetcode:20. 有效的括号 实现 思路 遍历到左括号,入栈对应的右括号(方便遍历到右括号时进行对比);遍历到右括号,对比栈顶元素。 把无效三种情况照顾到:1. 左括号多了(遍历结束后栈不为空);2. 左右括号不匹配(右括号时栈顶元素与当前元素对比);3. 右括号多了(右括号时栈 阅读全文
posted @ 2024-02-05 23:39 Tazdingo 阅读(1892) 评论(0) 推荐(0)
摘要: 用栈实现队列 实现 思路 用两个栈实现。入队用输入栈stIn,出队用输出栈stOut。 实现pop()时,要注意pop只删除,不返回值。 复杂度分析 略 注意点 stack的pop只能弹出,不返回值;弹出并获取值分成:用top()记录栈顶值、用pop()弹出(删除)栈顶值。 class方法调用要用- 阅读全文
posted @ 2024-02-03 23:22 Tazdingo 阅读(428) 评论(0) 推荐(0)
摘要: 实现strStr 暴力遍历法 思路 双层循环,第一层遍历原字符串,第二层同时遍历寻找的字符串,一旦不匹配时,第一层退回到起始字符的下一位重新开始遍历。 复杂度分析 时间复杂度:最差时O(N^M)。最差情况每个寻找字符到最后一个字符不匹配,操作次数为原字符串长度N*寻找字符长度M。 空间复杂度:O(1 阅读全文
posted @ 2024-02-02 02:19 Tazdingo 阅读(2199) 评论(0) 推荐(0)
摘要: 反转字符串 leetcode:344. 反转字符串 双指针法 思路 双指针中间靠拢,靠拢过程同时引入第三只被子以交换两个杯子的水。 复杂度分析 时间复杂度:O(N)。遍历一遍字符串 空间复杂度:O(1)。 注意点 while条件是left < right。 可以用swap()函数交换两个数的值。 代 阅读全文
posted @ 2024-02-01 01:01 Tazdingo 阅读(2292) 评论(0) 推荐(0)
摘要: 四数相加 leetcode:454. 四数相加 II map法 思路 遍历A、B数组,建立a+b数值->该数值出现次数的map映射。 再遍历C、D数组,寻找map[0 - (c + d)]是否存在,计算count。 注意点 四个不同数组,不用考虑去重;只求组数,不要求下标。 map[a+b]++自动 阅读全文
posted @ 2024-01-31 01:55 Tazdingo 阅读(2349) 评论(0) 推荐(0)
摘要: 哈希表理论基础 定义 哈希表是根据关键码的值而直接进行访问的数据结构。 特点是查询时间复杂度为O(1)。 哈希函数 哈希表存储过程:键 映射 >数值(索引)中,完成这个映射过程的函数。 哈希碰撞 哈希函数映射到同一位置时称为哈希碰撞。 解决方案有两种: 拉链法。在原位置上向后接链表存储。 线性探测法 阅读全文
posted @ 2024-01-30 17:34 Tazdingo 阅读(2385) 评论(0) 推荐(0)
摘要: 两两交换链表结点 leetcode:24. 两两交换链表中的节点 迭代法 思路 第一步cur->next = cur->next->next 第二步cur->next->next = 原cur->next 第三步cur->next->next->next=原cur->next->next->next 阅读全文
posted @ 2024-01-28 20:53 Tazdingo 阅读(2314) 评论(0) 推荐(0)
摘要: 移除链表元素 leetcode:203. 移除链表元素 原链表操作法 思路 在原链表上操作,分为头节点操作和非头结点操作。 循环检测head是不是val,是的话删除结点并后移head指针。 循环检测head之后的结点是不是val(用cur指针),是的话删除结点;否则指针后移遍历链表。 重复1、2直至 阅读全文
posted @ 2024-01-27 01:21 Tazdingo 阅读(2361) 评论(0) 推荐(0)