
算法
文章平均质量分 75
大树叶
宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒。
展开
-
小议LRU算法的实现
LRU原理LRU(Least Recently Used)是一种常见的页面置换算法,原理就是,当数据在最近一段时间经常被访问,那么它在以后也会经常被访问。这就意味着,如果经常访问的数据,我们需要然其能够快速命中,而不常访问的数据,我们在容量超出限制内,要将其淘汰。LRU的实现对于这种类似序列的结构我们一般可以选择链表或者是数组来构建。1. 数组 查询比较快,但是对于增删来说是一个不是一个好的选择。2. 链表 查询比较慢,但是对于增删来说十分方便O(1)时间复杂度内搞定。我们可以选择 .转载 2021-02-26 01:00:40 · 176 阅读 · 0 评论 -
leetcode 网站
https://leetcode.com/problemset/algorithms/原创 2019-01-17 01:01:52 · 2295 阅读 · 0 评论 -
寻找一个字符串中的最长重复子串(后缀数组) 以及 找出一个字符串中最长不重复子串
一、寻找一个字符串中的最长重复子串(后缀数组)后缀数组其实可以看寻找一个字符串中的最长重复子串(后缀数组)作一个由字符串s倒数i个字符组成的子串的集合,其中0<i<s.length(),例如 字符串strstr的后缀数组为: {r,tr,str,rstr,trstr,strstr} 得到这个集合之后,我们可以发现,最长重复子串其实变成了求该集合中任意两个元素的最长公共前缀的问题。...转载 2019-01-17 00:18:08 · 956 阅读 · 0 评论 -
推荐:JDK7与JDK8中HashMap的实现
原文转自:https://my.oschina.net/hosee/blog/618953JDK7中的HashMapHashMap底层维护一个数组,数组中的每一项都是一个Entry1transientEntry<K,V>[] table;我们向 HashMap 中所放置的对象实际上是存储在该数组当中;而Map中的key,value则以Entry的形式存放在数组中12345staticc...转载 2017-10-15 23:24:53 · 298 阅读 · 0 评论 -
最长回文子串——Manacher 算法
0. 问题定义最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例:12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词)1. Brute-force 解法对于最长回文子串问题,最简单粗暴的办法是:找到字符串的所有子串,遍历每一个子串以转载 2017-10-08 12:20:58 · 335 阅读 · 0 评论 -
java多线程之内存可见性-synchronized、volatile
1、JMM:Java Memory Model(Java内存模型)关于synchronized的两条规定: 1、线程解锁前,必须把共享变量的最新值刷新到主内存中 2、线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值 注:加锁和解锁需要是同一把锁,注:线程解锁前对共享变量的修改在下次加锁时对其他线程可见2、线程执行互斥代原创 2017-06-23 00:16:50 · 488 阅读 · 0 评论 -
小议 java volatile 用法
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要原创 2017-06-22 23:54:16 · 407 阅读 · 0 评论 -
cache FIFO, LFU 算法 讨论与实现
在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO、LFU。1.FIFO算法 FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会用到呢?因为这个原则简单、且符合人们的惯性思维转载 2017-06-22 08:53:33 · 2278 阅读 · 0 评论 -
leetcode刷题网站
LeetCode题解,151道题完整版:https://github.com/soulmachine/leetcodehttp://blog.csdn.net/derrantcm/article/details/46905087 更多 leetcode 比较全的博客地址http://blog.csdn.net/yeqiuzs/article/details/52573876...原创 2017-06-22 16:07:53 · 2892 阅读 · 0 评论 -
LintCode rain trap 接雨水
题目Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining.For example, Given [0,1,0,2,1,0,1,3,2,1,2,1...转载 2017-06-29 10:26:50 · 464 阅读 · 0 评论