问题介绍 给定一个序列,另一个序列满足如下条件时称为X的子序列:存在一个严格递增的X的下标序列,对所有的满足 给定两个序列和,如果同时是和的子序列,则称是和的公共子序列。最长公共子序列(LCS)问题指的是:求解两…
标签:数据结构
2018阿里一面问题总结
java垃圾回收原理: gc原理: 垃圾检测:对象不再被任何途径使用 给对象添加一个引用计数器,每当有一个地方引用它时,计数器+1;当引用失效时,计数器-1;任何时刻计算器值为0的对象即为不再被使用的对象。 但是Java…
SPOJ-7258. Lexicographical Substring Search(Suffix Automaton)
题目:http://www.spoj.com/problems/SUBLEX/ 明显,如果按照字典序DFS整个自动机便可以按字典序生成出所有子串,那么要求k小子串的话就先DP一下,令dp(v)表示从v状态开始遍历可以得到…
10分钟搞懂条件概率
条件概率的意思是在某种条件下某件事发生的概率是多少。条件概率其实反应了一个朴素的概念,你平时在推理不确定的事情时,下意识的需要去找和事情有关的证据,因为证据越多你对不确定的事情的推理就越有信心。 举个例子,某个城市发生了…
开放地址法散列
开放地址法 开放地址法是另一种(相对于分离链接法)解决散列冲突的方法。适用于装填因子(散列表中元素个数和散列表长度比)较小(小于0.5)的散列表。 开放地址法中索引的计算方法为$$h_{i}(x) = (Hash(X) …
BZOJ-1468: Tree(树-点分治)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1468 题目大意:给定一棵边带权的树,求路径长度不大于k的路径总数。 代码(树的点分治算法,具体可看09年qzc的集…
数据结构(二):算法及其描述
一、算法及其描述 1、什么是算法 数据元素之间的关系有逻辑关系和物理关系,对应的操作有逻辑结构上的操作功能和具体存储结构上的操作实现。 把 具体存储结构上的操作实现方法 称为算法。 确切地说,算法是对特定问题求解步骤的一…
1003 我要通过
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有P…
几种蚁群算法介绍
蚂蚁系统 最早的蚁群算法,其在小规模TSP中性能尚可,再大规模TSP问题中性能下降,容易停滞。其解决旅行商问题(TSP)过程大致如下: 在初始时刻,m只蚂蚁被随机的放到城市中,在各条路径上的信息素初始值相等。 蚂蚁按照随…
二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 2…
C++中级算法第三天(冒泡排序)
今天写的这个冒泡排序还是相对前面两个排序算法,是简单了很多的(我个人这样认为) OK,下面就让我们开始今天的算法吧 冒泡排序 简单介绍: 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法 它重复…
058 关于二叉树 红黑树 B树等
知乎上有位同学这样解释二叉树,我觉得有一定道理。 本质上,二叉树,是对链表和数组的一个折中。 链表: 利于插入和删除数据; 数组: 利于查询数据,而不利于插入和删除数据。 B树,不是二叉树,是一种多叉树。 红黑树是一种近…