- 博客(17)
- 资源 (13)
- 收藏
- 关注
原创 深度剖析vector
vector的介绍及使用vector是表示可变大小数组的容器同数组一样,vector采用连续的存储空间来存储元素,因此可以采用下标对vector的元素进行访问,和数组一样高效,与数组不同的是,vector的大小可以动态改变,而且它的大小会被容器自动处理。...
2021-07-29 09:37:00 141
原创 剑指 Offer 59 - II. 队列的最大值
请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1输入: ["MaxQueue","push_back","push_back","max_value","pop_front","max_value"][[],[1],[2],[],[],[]]输出: [null,null,null,2,1,2]思路一:暴力法
2021-07-19 16:40:53 52
原创 平衡树(AVL树)
二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可以降低树的高度,从而减少平均搜索长度。AVL树...
2021-07-18 11:32:26 2532
原创 优先级队列
总结学习1:https://blog.csdn.net/LF_2016/article/details/52750174总结学习2:https://blog.csdn.net/red_red_red/article/details/84559951
2021-07-17 09:41:20 112
原创 剑指 Offer 59 - I. 滑动窗口的最大值
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3
2021-07-16 22:02:53 56
原创 剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )思路:用两个栈(1)stack_in只负责进入(2)stack_out只负责取出(3)只有stack_out为空时才把stack_in的所有元素倾倒进stack_out中class CQueue {stack<int> stc1;stack<int>
2021-07-12 16:31:04 52
原创 剑指offer68 树中两个节点的最低公共祖先
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”题目一:这棵树是一颗二叉搜索树的情况...
2021-07-09 10:59:32 89
原创 位运算操作总结
一、位运算符符号描述运算规则&与两位都为1,那么结果为1或有一位为1,那么结果为1~非~0 == 1, ~1 == 0^异或两位不相同结果为1<<左移各二进位全部左移若干位,高位丢弃,低位补0>>右移各二进制位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)二、常用位操作判断奇偶(x & 1) == 1 ---
2021-07-06 11:10:04 229
原创 如何查找第N高的数据?
现在有“课程表”,记录了学生选修课程的名称以及成绩。现在需要找出语文课中成绩第二高的学生成绩。如果不存在第二高成绩的学生,那么查询应返回 null。
2021-07-04 08:55:04 136
原创 SQL多表查询
表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键
2021-07-03 23:26:33 63
原创 剑指 Offer 54. 二叉搜索树的第k大节点
给定一棵二叉搜索树,请找出其中第k大的节点。 输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 4依据:二叉搜索树的中序遍历是有序的最朴素的思路:中序遍历二叉搜索树至结果集res (vector<int>)将结果集反转返回res[k-1]改进一点点的思路:中序遍历的时候按照右 - 中 - 左遍历,这样就不用反转结果集了再进一步的思路:没有保存下结果集,遍历到目标值时记录下此时的值即可
2021-07-03 19:27:37 52
原创 leetcode 剑指 Offer 36. 二叉搜索树与双向链表
下面二叉搜索树:考虑如何转换成双向链表?中序遍历二叉搜索树:首先遍历到左侧节点节点连接操作右侧递归class Solution {Node* first = NULL;Node* last = NULL;private: void dfs(Node* node){ if(node){ dfs(node->left); if(last) { last->right =
2021-07-03 17:37:36 52
原创 剑指offer55 二叉树的深度
给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 解法一:DFS:求出所有的路径,返回最长路径数组的size()解法二:BFS: 层序遍历,二叉树的层数就是其深度解法三:递归:class Solution {private: int dfs(TreeNode* root) { if(root == NULL) return 0; int
2021-07-01 08:43:10 76
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人