算法
生旦净末灰
Look, I am so vegetable !
展开
-
图-深度优先搜索输出有向图中的所有环
图这一块掌握的不是很熟练。招银网络科技编程题,找到以某个节点为初始节点的所有环package Java;import java.util.*;public class Test { static List<Integer> trace;// 搜索路径上的路径 static Set<Integer> searched = new HashSet<>();// 是否访问,可以用数组0/1 static Set<List<Integer>&g原创 2020-09-06 18:35:52 · 966 阅读 · 0 评论 -
石头合并/动态规划
石头合并题目描述题目描述矩阵连乘有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。如,[1,3,5,2],合并三次:1+3=4,5+2=7,4+7=11,总代价:4+7+11=22.思路:动态规划,遍历合并区间长度,每次合并两个较小的堆,dp二维数组表示区间ij的最小代价,dp[i][j]等于[i,j]区间的石子和sum,加上[i,j]区间的最优化原创 2020-09-02 18:39:37 · 345 阅读 · 0 评论 -
Top K问题
Top K问题百万级大数据找出第(前)K大的数据思路:堆排序,维护大小为k的堆;快排,利用分治思想,递归分治,直到某次分治后,其中一部分元素数量为k。比较:看起来分治法的快速选择算法的时间、空间复杂度都优于使用堆的方法,但是要注意到快速选择算法的几点局限性:第一,算法需要修改原数组,如果原数组不能修改的话,还需要拷贝一份数组,空间复杂度就上去了。第二,算法需要保存所有的数据。如果把数据看成输入流的话,使用堆的方法是来一个处理一个,不需要保存数据,只需要保存 k 个元素的最大堆。而快速选择原创 2020-09-02 17:02:44 · 85 阅读 · 0 评论 -
字节提前批笔试-2020.06.28
字节-2020.06.28原创 2020-06-29 00:19:32 · 230 阅读 · 0 评论 -
十大排序算法
十大排序算法(跳转链接)原创 2020-03-08 22:51:44 · 164 阅读 · 0 评论 -
LeetCode
LeetCode收纳箱4. 两个排序数组的中位数 要求复杂度O(log(M+N))class Solution { public double findMedianSortedArrays(int[] A, int[] B) { //复杂度log(m+n) //依次将两数组切割成左右两半,每半个数可以有0~len个数,并混合成大的两半 ...原创 2020-03-06 11:54:18 · 75 阅读 · 0 评论 -
算法思路速查 & Tips
各类常见算法总结归类贪心算法原创 2020-03-06 11:53:50 · 168 阅读 · 0 评论 -
树结构总结
关于树的一些Tips关于树结构的一写总结层次遍历–>队列原创 2020-03-06 09:55:24 · 129 阅读 · 0 评论 -
和为S的连续序列
我可真是个小机灵鬼原创 2020-03-05 22:35:47 · 129 阅读 · 0 评论 -
二叉搜索树转排序双向链表
二叉搜索树转排序双向链表思想中序遍历,即可完成从小到大重点是。根节点的left是其左子树的最右节点,此节点为左子树遍历的最后一个节点,因此利用last指针更新保存当前遍历到的节点,和root连接即可。public class Solution { TreeNode last = null; TreeNode realHead = null; public Tre...原创 2020-03-05 22:31:19 · 93 阅读 · 0 评论 -
KMP算法
leetcode :匹配字符串首坐标KMP算法 KMP 算法(Knuth-Morris-Pratt 算法)是一个著名的字符串匹配算法,效率很高,较复杂。题目描述 用 pat 表示模式串,长度为 M,txt 表示文本串,长度为 N。KMP 算法是在 txt 中查找子串 pat,如果存在,返回这个子串的起始索引,否则返回 -1。暴力解法暴力解法效率很低,两层循环依次匹配:而KMP不...转载 2020-02-18 20:11:32 · 207 阅读 · 0 评论 -
孩子们的游戏
孩子们的游戏题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…...原创 2020-02-17 19:45:22 · 165 阅读 · 0 评论