算法
文章平均质量分 69
大树91
这个作者很懒,什么都没留下…
展开
-
Java 手写实现 LRU 缓存机制
前言LRU是什么?是一种缓存淘汰策略。Least Recently Used 即最近最少被使用。为什么要用LRU?在计算机中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因此我们需要制定一种策略对加入到内存中的文件进项选择。实现LRU应该具备哪些功能运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:条件:LRUCache(int capacity) 以正整数作为容量 ca原创 2021-01-10 22:22:21 · 771 阅读 · 0 评论 -
海量数据处理 大量数据中找出最大的前10个数 (Top K 问题)
在工作中我们常遇到此类问题,从一个大量甚至海量的数据中取出前几个大的数。必须在海量的文章中取出点击量最大的10篇文章。此类问题其实就是Top K问题。给定一个数据(数据量海量 N),想找到前 K 个最大的或最小的元素。eg:有10亿个Long型整数,如果找出其中最大的10个?最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O(nlogn),如快速排序。每个Long类型占8个字节,10亿个数就要占用7GB+的存储空间,对于一些可用内存小于7GB的计算机而原创 2020-09-04 17:44:49 · 9555 阅读 · 0 评论 -
java中超过long范围的超大整数相加算法(面试高频) 第二版
第二版针对第一版做了一定优化,代码和算法就是个不断优化的过程。具体题目背景请看第一版文章,地址:https://blog.csdn.net/wandou9527/article/details/108025167大佬有更好更优雅的实现方式请评论区交流讨论。直接上代码:import org.junit.Test;/** * @author liming * @date 2020/8/20 */public class BigNumAddDemo { @Test publi原创 2020-08-20 14:30:33 · 826 阅读 · 1 评论