![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
算法知识总结
A__Plus
这个作者很懒,什么都没留下…
展开
-
最长公共子序列长度(LCS)和最长上升子序列长度(LIS)问题的解法
概念理解在了解LCS和LIS问题前,我们先来了解基本的概念子序列给定一个序列,将序列中0个或多个元素去掉之后得到的结果即为子序列。例如给定序列 A=[1,2,3]A = [1, 2, 3]A=[1,2,3],那么 AAA 的子序列有:[][][],[1][1][1],[2][2][2],[3][3][3],[1,2][1,2][1,2],[1,3][1,3][1,3],[2,3][2,3][...原创 2019-10-17 23:28:07 · 427 阅读 · 0 评论 -
旅行商问题解法(2019年字节跳动校招笔试算法题“毕业旅行问题”)
问题原型给定一系列城市和每对城市之间的距离,求推销员从某个城市出发后经过所有城市,然后回到出发城市的最短路径。为了方便讲解,我们以2019年字节跳动校招笔试题“毕业旅行问题为例”。牛客原链接:https://www.nowcoder.com/profile/4097742/codeBookDetail?submissionId=58509076题目描述小明目前在做一份毕业旅行的规划。打算从...原创 2019-10-22 00:10:20 · 9422 阅读 · 2 评论 -
正权图的最短路径算法:Dijkstra算法
概念Dijkstra算法用于解决无向图或者有向图(有环无环皆可)中起点到各个顶点的最短路径,前提是该图的所有边权必须大于等于0。如果图的边有负权值,就需要用到Bellman-Ford算法。本篇博客仅介绍Dijkstra算法。Dijkstra算法是基于贪心思想的算法。具体过程是:将图中节点从0~n标号,定义起点为0。定义一个数组way,长度为n + 1,记录从起点到某个点的最小距离。并将数...原创 2019-10-19 19:04:29 · 1492 阅读 · 0 评论 -
六种经典排序算法——冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序
理论性能比较算法平均时间复杂度最好时间复杂度最坏时间复杂度空间复杂度稳定性冒泡排序O(N2)O(N^2)O(N2)O(N2)O(N^2)O(N2)O(N2)O(N^2)O(N2)O(1)O(1)O(1)稳定选择排序O(N2)O(N^2)O(N2)O(N2)O(N^2)O(N2)O(N2)O(N^2)O(N2)O(1)O(1)O(1)不稳定...原创 2019-06-23 18:04:10 · 1093 阅读 · 0 评论 -
算法题中常用的C++ STL
一、栈(stack)stack实现了一种先进后出的数据结构,使用时需要包含stack头文件 C++定义stack语法:stackint> s;//int为栈的数据类型,可以为string,double等C++中stack的基本操作有: 1、出栈:如 s.pop() 注意并不返回出栈的元素 2、进栈:如 s.push(x) 3、访问栈顶元素:如s.top(); 4、判断栈空:如原创 2017-12-19 11:48:37 · 854 阅读 · 0 评论