算法
主要包括leetcode题目,以及剑指offer题目的整理,方便以后的复习
狮子谢耳朵
这个作者很懒,什么都没留下…
展开
-
「STL详解」RB-tree 红黑树
RB-tree 红黑树是一种广泛使用的平衡二叉搜索树(BInary Search Tree),也是 SGI STL 为以实现的一种搜索树,作为关联式容器(associated containers)的底部机制。它能确保任何一个节点的左右子树的高度差不会超过二者中较低子树的一倍。RB-tree 满足以下规则:每个节点不是红色就是黑色根节点是黑色如果节点是红色,其子节点必须为黑任意节点到 NULL(数尾端)的任何路径,所含黑节点数必须相同RB-tree 节点设计RBTree 有红黑两种颜色的节原创 2020-06-21 19:51:27 · 625 阅读 · 0 评论 -
「算法」二叉树的四种遍历方式和一些题目
文章目录二叉树的基本概念二叉树的特点完全二叉树二叉树的存储结构二叉树的遍历前序遍历中序遍历后序遍历层序遍历二叉树的相关题目1. 重建二叉树2. 二叉树的下一个节点3. 二叉树的子结构4. 二叉树的镜像二叉树的基本概念二叉树(binary tree)是 n(n>=0)n(n>=0)n(n>=0) 个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点以及两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。每个根节点最多只有两个子节点的就叫做二叉树。二叉树的特点原创 2020-06-04 21:07:50 · 438 阅读 · 0 评论 -
「算法」位运算的一些技巧
位运算是把数字用二进制表示,对每一位上的 0 或 1 进行运算。位运算只有五种类型:与(&)、或(|)、异或(^)、左移(<<)和右移(>>)。左移运算和右移运算左移运算符 m<<n 表示把 m 左移 n 位,最左边的 n 位丢弃,同时在最右边补 n 个 0。右移运算符 m>>n 表示把 m 右移 n 位,最右边的 n 位丢弃,如果 m 是无符号数,则用 0 填补最左边的 n 位;如果 m 是有符号数,则用符号位填补最左边的 n 位。对于一个正原创 2020-05-12 22:47:24 · 371 阅读 · 0 评论 -
「算法」贪心算法的认识和总结
1. 贪心思想贪心算法又称为贪婪法,是用来寻找最优解问题的常用方法。与动态规划不同的是,贪心算法在求解问题时,总是选择对于当前子问题最好的选择。也就是贪心算法的本质是每次只顾眼前利益,并且到最后能获得最大利益。“贪婪”就像是一个贪心的人,每次都只能看到眼前(或局部)的利益最大化,走一步看一步,并且最后能够得到问题(全局)利益的最大化。对于贪心算法,最重要的就是找到每次的局部最优解,而动态规划...原创 2020-05-01 21:55:00 · 942 阅读 · 0 评论 -
「算法」动态规划解题三部曲及题目整理
1. 动态规划基本概念动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。1.1 动态规划问题中...原创 2020-04-30 23:46:56 · 491 阅读 · 0 评论