
数据结构与算法
一些数据结构的实现与理解
pSomng
欢迎访问我的个人博客了解我
展开
-
二叉树的一些基本概念以及实战
二叉树 概念 二叉树: 是n(n>=0)个节点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。 满二叉树: 如果一个二叉树中的任何结点要么度数为0,要么度数为2,则此二叉树为满二叉树 完全二叉树: 如果一棵二叉树中,只有最下面两层的节点的度数小于2,其余各层的度数都等于2,并且最下面一层的节点都集中在最左...原创 2020-03-26 17:18:59 · 273 阅读 · 0 评论 -
【动态规划】Coin Change(LintCode---669)---详解
题目 给出不同面额的硬币以及一个总金额. 写一个方法来计算给出的总金额可以换取的最少的硬币数量. 如果已有硬币的任意组合均无法与总金额面额相等, 那么返回 -1. Example 样例一 输入: [1, 2, 5] 11 输出: 3 解释: 11 = 5 + 5 + 1 样例二 输入: [2] 3 输出: -1 思路 这道题看起来很像可以使用贪心解决,每次都拿最大的,这样就能使得最后...原创 2020-03-24 21:03:53 · 647 阅读 · 0 评论 -
C/C++实现排序算法系列——归并排序(MergeSort)
归并排序(MergeSort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(分而治之-Divide and Conque)的一个典型应用,也是目前较为流行的经典算法之一。归并排序可分为二路归并、三路归并、多路归并等,本文基于最普遍的二路归并来讲述。原创 2019-11-22 11:57:43 · 1644 阅读 · 4 评论 -
这里告诉你如何计算算法的时间复杂度(大O阶)
关于时间复杂度: 在计算机科学中,算法的时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串>的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦>即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多...原创 2019-09-03 22:40:03 · 9369 阅读 · 3 评论