看过很多励志的故事,听过很多成功学的鸡汤,很多书中都在讲,成功需要努力,需要坚持,需要制定计划等等一系列的说法。但是我还是成为不了一个努力的人,自从小到大,感觉自己从来没有主...
看过很多励志的故事,听过很多成功学的鸡汤,很多书中都在讲,成功需要努力,需要坚持,需要制定计划等等一系列的说法。但是我还是成为不了一个努力的人,自从小到大,感觉自己从来没有主...
一、一个模型三个特征理论 一个模型:动态规划适合解决的问题的模型。把这个模型定义为”多阶段决策最优解模型“,解决的问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状...
一、如何理解回溯算法 回溯的处理思想,有点类似枚举搜索。枚举所有的解,找到满足期望的解。为了有规律地枚举所有可能的解,避免遗漏和重复,把问题求解的过程分为多个阶段。每个阶段都...
一、如何理解分治算法 分治算法的核心思想就是四个字,分而治之,也就是将原问题划分成n个规模较小,并且结构与原问题相似的子问题,然后再合并其结果,就得到原问题的解。分治算法跟递...
一、贪心算法 什么情况下我们要想到用贪心算法: 1、当我们看到这类问题的时候,首先要联想到贪心算法:针对一组数据,我们定义了限制值和期望值,希望从中选出几个数据,在满足限制值...
一、什么是 Trie树? Trie树,也叫字典树,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。 Trie树的本...
一、字符串原理 KMP算法是由它的三位作者(D.E.Knuth,J.H.Morris 和 V.R.Pratt)的名字来命名的;SMP算法的核心思想跟BM算法很相似,主要不同在...
一、BF算法 BF算法中的BF是Brute Force的缩写,可以叫暴力算法,也叫朴素匹配算法。这种算法的字符串匹配很“暴力”,比较简单、容易理解,但性能也不高。 BF算法的...
一、基本概念 字符串匹配是计算机科学领域中最古老、研究最广泛的问题之一,层出不穷的前辈们也总结了非常多经典的优秀算法,例如 BF 算法、RK 算法、BM 算法、KMP 算法,...
一、什么是堆? 堆是一种特殊的树,堆要满足下面两点。1、堆是一个完全二叉树;2、堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。通过下图可以更好理解: 根...
递归的思想就是,将大问题分解成小问题来求解,然后再将小问题分解成小小问题。这样一层一层的分解,直到问题的数据规模被分解得足够小,不用继续递归分解为止。 如果我们把这个一层一层...
一、如何定义一棵"红黑树"? 顾名思义,红黑树中的节点,一类被标记为黑色,一类标记为红色。除此之外,一课红黑树还需要满足这样几个要求: 1.根节点是黑色的; 2....
一、树 1、树的常用概念 节点:树中的每个元素称为节点 父子关系:相邻两节点的连线,称为父子关系 根节点:没有父节点的节点 叶子节点:没有...
一、什么是哈希算法? 1、将任意长度的二进制值串映射成固定长度的二进制值串,这个映射规则就是哈希算法;而通过原始数据映射之后得到的二进制值串就是哈希值。 2、如何设计...
一、散列表的由来? 1、散列表来源于数组,它借助散列函数对数组这种数据结构进行扩展,利用的是数组支持下标随机访问元素的特性。 2、需要标识存储在散列表中数据我们称为键...
一、数组的特点 1、数组是一种线性表数据结构。它是一组连续的内存空间,来存储一组具有相同类型的数据。 2、数组需要预留空间,在使用前要中评占内存的大小,可能会浪费内存...
一、final 修饰类:不可被继承 修饰方法:不可重写 修饰变量:不可修改,final标识的变量不等于不可变,对于变量而言这个变量只是不能够赋值,但是可以做任何增...
一、什么是跳表 跳表为一个值有序的链表建立多级索引;比如每2个节点提取一个节点到时上一级,我们把抽出来的那一级叫做索引或索引层。 二、跳表的时间复杂度? 1、计算跳表...
1,Error:系统错误,虚拟机出错,跟系统有关。在代码中处理不了。 2、Exception:可以捕获的异常,且作出处理。要么捕获异常并算出处理,要么继续抛出异常。 3、Ru...
一、宏观角度 .. 1、跟c/c++最大的不同点在于,c/c++编程是面向操作系统的,需要开发者极大地关心不同操作系统之间的差异性;而Java平台通过虚拟机屏蔽了操作系统的底...