摘要: 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 示例: 先看这个题目,这个题目不仅仅是一个排序的问题,它的特点在于数组中的元素是固定的3个0,1,2 阅读全文
posted @ 2019-08-07 11:04 李湘沅 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。 示例: 输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明: 如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。 阅读全文
posted @ 2019-08-07 09:51 李湘沅 阅读(125) 评论(0) 推荐(0) 编辑
摘要: AVL树是非常重要的一种数据结构,这里实现了在AVL树中的插入操作,包括插入后整个树的自平衡。 这里有几点值得注意的地方: 1).左旋L_Rotate与右旋R_Rotate操作: 这两个操作传递进来的参数是以TreeNode*&的形式传递进来的,也就是说传递的是指针的引用,效果等价于传递二级指针 如 阅读全文
posted @ 2019-08-06 21:06 李湘沅 阅读(1059) 评论(0) 推荐(0) 编辑
摘要: EPOLLSHOT的作用主要用于多线程中 epoll在某次循环中唤醒一个事件,并用某个工作进程去处理该fd,此后如果不注册EPOLLSHOT,在该fd时间如果工作线程处理的不及时,主线程仍会唤醒这个时间,并另派线程池中另一个线程也来处理这个fd。 为了避免这种情况,需要在注册时间时加上EPOLLSH 阅读全文
posted @ 2019-08-06 09:43 李湘沅 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board =[['A','B','C','E'],['S','F','C','S'],[ 阅读全文
posted @ 2019-08-05 11:21 李湘沅 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 首先看UnassignGuard类的结构: 可以看到UnassignGuard类中成员只有一把锁,接口只有一个构造函数和一个析构函数。 构造函数的特点是对该锁的持有者清0,析构函数的特点是设置该锁的持有者线程。 关于UnassignGuard,它是配合条件变量来使用的。 首先我们看下条件变量,一般使 阅读全文
posted @ 2019-08-02 15:58 李湘沅 阅读(610) 评论(0) 推荐(1) 编辑
摘要: 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。 首先定义: 对柱形图中的一个矩形i来说,我们计算以heights[i]为 阅读全文
posted @ 2019-08-02 12:05 李湘沅 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 图的关节点: 如果删去某个节点及依附在该节点上的边后,该图被分割为两个或两个以上的连通图,则该节点为关节点。 计算关节点的关键思路: 在该图的深度优先生成树上,如果某个节点的孩子节点(不一定是二叉树,孩子节点可能大于2)的子树中,所有孩子节点的子树中都有回边能回到该节点的祖先上,则该节点不是关键节点 阅读全文
posted @ 2019-08-01 17:00 李湘沅 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: 迪杰斯特拉算法用于计算:某点v0到其他所有点的最短路径,时间复杂度为O(n^2) 初态: 设定V为所有顶点的集合。 设定S为已经得到的最短路径的顶点vi的集合。即S中的顶点vi,都是已经确定下来v0到vi间的最短距离的顶点的集合。 设定V-S为尚未计算得到最短路径的顶点集合。 初态下,S为空,V-S 阅读全文
posted @ 2019-08-01 16:50 李湘沅 阅读(1365) 评论(0) 推荐(0) 编辑
摘要: 非递归写法: 对一个节点来说,当遍历它时,要求它的右子树已经遍历完。 因此,为了判断当前节点到底需不需要遍历,引入pLast为上一次遍历的节点。 当pCur->right==pLast||pCur==NULL时,说明右子树已经遍历完了,应该遍历该节点了。 否则,说明该节点右子树尚未遍历,将右子树的根 阅读全文
posted @ 2019-07-24 18:19 李湘沅 阅读(196) 评论(0) 推荐(0) 编辑