随笔分类 - DS & Algo
摘要:实现摘要:map+双向链表 Java中的LinkedHashMap本身自带lru属性。 java实现:v1版本 feature 实现基本的lru语义 不能扩容 evict回调 范型
阅读全文
摘要:题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 C++的位移运算 右移 , 左移 ` 算术位移 逻辑位移
阅读全文
摘要:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
阅读全文
摘要:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 注意C++ 值传递 引用传递 指针传递
阅读全文
摘要:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
阅读全文
摘要:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
阅读全文
摘要:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 二分法 java public class Solution { public boolean Find(
阅读全文
摘要:题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 3, 2,7, 15,1
阅读全文
摘要:线段树 线段树(英语:Segment tree)是一种二叉树形数据结构,1977年由Jon Louis Bentley发明[1],用以储存区间或线段,并且允许快速查询结构内包含某一点的所有区间。 线段树常常用对区间数据的更新和查询,主要的作用就是体现在对区间的处理。 最常见就是这样一个问题: 现在有
阅读全文
摘要:数组的区间和 输入一个无序的数组nums,然后可以在O(1)的时间复杂度给出区间ii到jj之间的元素和。 例如: 数组nums = [1,2,3,4,2,3,1],查询区间下标为1到3之间的元素的和,则返回sum = 2+3+4 = 9。 如果排序的话,原来的下标之间的相对关系就变了,维护这个相对关
阅读全文
摘要:完全背包问题 完全背包是背包问题的基础问题之一,和前面介绍的01背包类似,唯一的不同的是每件物品不再是只有一件,而是无限件。 01背包前面已经做了简单的总结。https://blog.csdn.net/u014532901/article/details/79835712 完全背包问题的描述如下:
阅读全文
摘要:01背包问题 背包问题 背包问题主要包含以下3种基本的问题: 01背包 完全背包 多重背包 其中对于每一种xx背包问题还存在一个特殊的情形,即要求背包恰好被装满,这种特殊问题的求解主要是在动态规划的状态数组的初始化做一下特殊的处理。 除此之外,有时候我们不仅仅要求背包能装下的最大物品的价值,我们还希
阅读全文
摘要:为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述: 每个输入
阅读全文
摘要:1. 二叉树遍历 树是最重要的数据结构之一,而树的遍历是树最基本的操作。 二叉树的遍历一般来说有三种遍历次序: 前序遍历 中序遍历 后序遍历 而这三种遍历次序都可以采用递归和非递归的方式来完成。 就时间、空间的复杂度来讲,因为非递归需要借助额外的Stack来完成操作,所以递归和非递归的时间复杂度都是
阅读全文
摘要:回溯法 回溯法简介 回溯法的基本步骤 回溯法之经典问题 回溯法之经典问题Sudoku数独 回溯法 1.回溯法简介 回溯法,又称试探法,是常用的,基本的优选搜索方法。常用于解决这一类问题:给定一定约束条件F(该约束条件常用于后面的剪枝)下求问题的一个解或者所有解。 回溯法其实是暴力枚举的一种改进,因为
阅读全文
摘要:LCS问题 简介 最长公共子串问题 最长公共子序列问题 References LCS问题 1. 简介 LCS通常是指Longest Common Subsequence, 但是也可代指Longest Common Substring。子串是一种特殊的子序列,子串和子序列的区别就是字串要求是组成子串的
阅读全文
摘要:KMP算法 KMP算法简介 KMP算法与确定性有限状态自动机DFA 1 DFA与KMP算法 2 DFA子串查找 KMP算法的主流实现 1 next数组 2 具体实现 KMP算法 1.KMP算法简介 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同
阅读全文
摘要:Union-Find算法 简介 原理 改进 应用 References Union-Find算法 1.简介 Union-Find算法又称并查集算法,是一种作用于并查集数据结构的算法。包含两个主要的操作: - Find 用于查找某个元素属于哪个集合,可以用来确定两个元素是否在同一个集合中; - Uni
阅读全文
摘要:堆和堆的应用堆排序和优先队列 堆 堆的应用堆排序 堆的应用优先队列 堆的应用海量实数中一亿级别以上找到TopK一万级别以下的数集合 总结 references 堆和堆的应用:堆排序和优先队列 1.堆 堆(Heap)是一种重要的数据结构,是实现优先队列(Priority Queues) 首选的数据结构
阅读全文
摘要:Collections类中常用算法之Rotate Collections类中常用算法之Rotate Collections类简介 Rotate方法使用 Rotate方法源码分析 小结 Collections类简介 Collections类是java集合框架的一个类,其主要是一些通用的作用于Colle
阅读全文

浙公网安备 33010602011771号