算法
文章平均质量分 88
StriveCode
一个有梦想且努力的程序员
展开
-
深度优先,广度优先,拓扑排序(实战题解)
前言深度遍历和广度遍历在算法占比很大,主要是解决图的问题(树也是图的一种)一、深度优先遍历1、深度遍历(DFS)解决什么问题DFS解决的是连通性的问题,即给定两⼀个起始点(或某种起始状态)和⼀个终点(或某种最终状态),判断是否有⼀条路径能从起点连接到终点。很多情况下,连通的路径有很多条,只需要找出⼀条即可,DFS 只关⼼路径存在与否,不在乎其⻓短。所以dfs一般都是找路径的2、算法思想:图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。它的思想:假设初始状态是原创 2021-03-12 10:20:44 · 3549 阅读 · 0 评论 -
String StringBuilder StringBuffer详解
一、String1、基础知识:String不是8种基本类型之一,String是一个对象,因为对象默认值为null,则String默认值也为空,同时也是一个特殊的对象,具备一些特性;(String s=new String()创建的是空串而不是null)。String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的(被finall修饰),所以可以共享。2原创 2021-03-09 17:13:56 · 626 阅读 · 0 评论 -
java中栈和队列
一、栈(stack)1、栈的创建和使用栈是Vector的一个子类,标准:后进先出创建:Stack st = new Stack();//Integer 类型的栈方法:1 boolean empty()测试堆栈是否为空。2 Object peek( )查看堆栈顶部的对象,但不从堆栈中移除它。3 Object pop( )移除堆栈顶部的对象,并作为此函数的值返回该对象。4 Object push(Object element)把项压入堆栈顶部。5 int search(Object原创 2021-03-06 21:32:27 · 628 阅读 · 2 评论 -
回溯算法 思路清晰,通俗易懂!!!!!!!
一、回溯算法是什么?回溯算法是⼀种试探算法,与暴⼒搜索最⼤的区别:在回溯算法中,是⼀步步向前试探,对每⼀步探测的情况评估,再决定是否继续,可避免⾛弯路回溯算法的精华:出现⾮法的情况时,可退到之前的情景,可返回⼀步或多步再去尝试别的路径和办法想要采⽤回溯算法,就必须保证:每次都有多种尝试的可能二、解题思路1.决策树:下面讲解题会细说解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题:1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束原创 2021-03-06 17:10:42 · 1199 阅读 · 0 评论 -
递归
递归一、递归是什么? 在数学与计算机科学中,递归(Recursion)是指在函数的定义中使用函数自身的方法。实际上,递归,顾名思义,其包含了两个意思:递 和 归,这正是递归思想的精华所在;基本性质就是把⼤规模的问题不断地变⼩,再进⾏推导的过程;可以使⼀个看似复杂的问题变得简洁和易于理解。 举例说明:你打开面前这扇门,看到屋里面还有一扇门。你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它。若干次之后,你打开面前的门后,发现只有一间屋子,没有门了。然后,你开始原路返回,每走原创 2021-03-03 00:09:47 · 455 阅读 · 0 评论