
算法
文章平均质量分 64
木泽八
日拱一卒
展开
-
一文带你看懂缓存淘汰算法--LRU
如果你去看LinkedHashMap的源码可知,LRU算法是通过双向链表来实现,当某个位置被命中,通过调整链表的指向将该位置调整到头位置,新加入的内容直接放在链表头,如此一来,最近被命中的内容就向链表头移动,需要替换时,链表最后的位置就是最近最少使用的位置。只有当数据的访问次数达到K次的时候,才将数据放入缓存。LRU-K具有LRU的优点,同时能够避免LRU的缺点,实际应用中LRU-2是综合各种因素后最优的选择,LRU-3或者更大的K值命中率会高,但适应性差,需要大量的数据访问才能将历史访问记录清除掉。转载 2023-01-30 11:14:12 · 1696 阅读 · 2 评论 -
两数之和--练习题
数据范围:2\leq len(numbers) \leq 10^52≤len(numbers)≤105,-10 \leq numbers_i \leq 10^9−10≤numbersi≤109,0 \leq target \leq 10^90≤target≤109。给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)原创 2022-11-11 12:01:52 · 805 阅读 · 0 评论 -
青蛙跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。台阶:1,2,3,4,跳数:1,2,3,5。。。菲波拉契数/**** @param number int整型* @return int整型*/int jumpFloor(int number ) { // write code here int num = 0; if(number == 0|| number ==1 ||...原创 2020-11-03 15:13:34 · 357 阅读 · 0 评论 -
星号实现的三角形(C语言)
很容易被面试官让实现的一道题。关键是思路要清楚,那么这道题就不难了。西安打印空格,再打印*号,然后回车。。。找到空格和*好与行数的关系。。#include "stdafx.h"#include "stdio.h"#include <stdlib.h>//row 为*号行数void triangle(int row){ int i=0, j=0; for(; i...原创 2019-03-04 16:06:58 · 9274 阅读 · 0 评论 -
IP地址转换整型(算法练习)
// ipTrans.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>typedef union{ unsigned char data[4]; unsigned int ip;}IP;unsigned int TransIP(char *pstrIp){ IP ipstr = {0...原创 2019-06-17 17:43:08 · 1333 阅读 · 1 评论