key、L
key、L
全部文章
数据结构和算法
Abaqus(7)
ANSYS(1)
C(2)
IDEA(3)
Java(11)
maven(1)
SSM(2)
web(2)
XML(1)
多线程(1)
工具(1)
未归档(13)
架构(1)
算法(2)
题解(2)
归档
标签
去牛客网
登录
/
注册
key、L的博客
全部文章
/ 数据结构和算法
(共14篇)
手写HashMap
import java.util.Objects;//Objects类的equals方法是判断两个对象是否相等。 //在比较两个对象的时候,Object.equals方法容易抛出空指针异常。 public class MyHashMap<K, V...
算法
数据结构
2020-03-22
0
802
Manacher算法
一个字符串中找到最长回文子串 public class Manachar { public static char[] manacherString(String str) { char[] charArr = str.toCharArray(); cha...
2020-02-22
0
615
KMP算法
1.KMP算法 有两个字符串str1和str2,问你在str1中是否有str2,如果有,返回str2在str1中开始的下标位置。str1 = ”abbaabbbabaa”str2 = ”abbaaba”KMP算法引入了一个next数组,next[i]表示的是前i的字符组成的这个子串最长的相同前缀后缀...
2020-02-22
0
669
0215进阶算法笔记
哈希函数做空间限制的题目反推1G内存的记录要多少条哈希表记录哈希表的增删改查都是O(1),原因有两点:(1)扩容代价:每个格子的平均代价为O(logN),工程上的O(logN)前面的常数系数很小,而且N不会很大,因此可以近似认为时间复杂度为O(1)(2)离线不占用用户在线的时间
数据结构
2020-02-15
0
427
布隆过滤器
1.什么是布隆过滤器? 布隆过滤器(Bloom Filter)是一个叫做 Bloom 的老哥于1970年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、Map 、Set 等数据结构,它占用空间更少并且效率更高...
数据结构
2020-02-15
0
996
算法初阶笔记——递归和动态规划
面试中的动态规划一定可以从暴力递归中来。下面代码枚举了所有的可能,暴力枚举,复杂度很高。leetcode64有很多重复状态。比如两个不同的点的两个路径有可能有重复。 暴力递归怎么转成动态规划。
算法
2020-02-12
0
573
算法初阶笔记——贪心策略
贪心是一个经验性的东西,要不断积累,找一个你认为对的贪心策略,要能举出反例证明一个策略是否是正确的1.哈夫曼编码问题用一个优先级队列表示堆 import java.util.Comparator; import java.util.PriorityQueue; public class Solut...
算法
leetcode
2020-02-12
0
2592
一个字符串数组,所有字符串按某种顺序串起来,求字典序最小的那个
贪心策略先定义一个自己的比较器,再排序就好了。 import java.util.Arrays; import java.util.Comparator; public class LowestLexicography { public static class MyComparator ...
算法
2020-02-12
0
499
算法初阶笔记——前缀树
前缀树(又称字典树、单词查找树、Trie树),是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 /* 这个...
算法
2020-02-11
0
595
算法初阶笔记——并查集
1.概念并查集(Union Find)是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。功能:a查找两个元素是否属于同一个集合:isSameSet(A,B) A所在的集合为Set1,B所在的集合为Set2,则返回Set1和Set2...
算法
leetcode
2020-02-11
0
604
首页
上一页
1
2
下一页
末页