前言LRU是一个操作系统的页面置换算法,它是 Least Recently Used(最近最少使用) 的缩写,用来淘汰上次使用距当前时间最长的页。
原创 2022-01-11 09:48:27
837阅读
1、阻塞队列/线程安全队列 实现: 注意问题: 1、防止虚假唤醒的lambda表达式需要传入this,也就是调用变量 2、lambda表达式的函数体不可以使用自己写的判断队列满或者空函数 template <typename T> class block_queue { public: block_ ...
转载 2021-07-30 11:33:00
321阅读
2评论
天天乐学 面试直接让我代码 完全不会呀 那不完蛋~ 两个线程,线程1打印A,线程2打印B,两个线程同时并发,要求保证先打印A,后打印B 使用synchronized+ wait、notifypublic class Main{ static class Number{ public int num = 1; Number(){} } public
原创 2022-01-26 10:06:11
283阅读
天天乐学 面试直接让我代码完全不会呀 那不完蛋~ 两个线程,线程1打印A,线程2打印B,两个线程同时并发,要求保证先打印A,后打印B 使用synchronized+ wait、notify public class Main{ static class Number{ public int num = 1; Number(){} } p
原创 2021-07-12 09:46:27
315阅读
LRU算法是内存换出算法,只不过实现代价比较大,我们可以使用Clock算法。 //双向链表+哈希表实现,其实就是LinkedHashMap class LRUCache { int capacity; LinkedNode q; HashMap<Integer,Node> map; public L ...
转载 2021-09-12 20:14:00
182阅读
2评论
# 算法 Python实现 ## 引言 在软件开发中,算法是非常重要的一部分。无论是解决实际问题还是优化程序性能,掌握算法都是开发者必备的技能之一。本文将向刚入行的小白开发者介绍如何实现算法 Python,帮助他们快速入门和提升算法能力。 ## 整体流程 下面是实现“算法 Python”的整体流程,我们将采用表格的形式展示各个步骤: | 步骤 | 描述 | |------|-
原创 2023-09-13 23:17:32
89阅读
原创 lightcity 光城 2019-03-11代码之常用排序算法0.导语本节为代码系列之第一弹,主要来排序算法,主要包括以下几大排序算法:直接插入排序冒泡排序选择排序快速排序希尔排序堆排序归并排序1.直接插入排序【算法思想】每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。【代码实现】# 直接插入排序def insert_sort(arr):  
c++
转载 2021-03-17 15:47:32
230阅读
代码之常用排序算法0.导语本节为代码系列之第一弹,主要来排序算法,主要包括以下几大排序算法:直接插入排序冒泡排序选择排序快速排序希尔排序堆排序归并排序1.直接...
归并排序//归并排序--采用分治法,先分后治,递归的解决问题/***分:将大问题拆
原创 2023-05-11 10:26:56
81阅读
文章目录基本排序冒泡排序 n2简单选择排序 n2插入排序 n2希尔排序归并排序快速排序堆排序计数排序桶排序基数排序反转链表二叉树遍历 广度+深度二叉树遍历 前中后序前序遍历中序遍历后序遍历求子集最长上升子序列kmp https://zhuanlan.zhihu.com/p/172524701基本排序冒泡排序 n2#include <iostream> using namespace
使用正则使用递归使用 reduce使用栈的思想实现 flat 函数?深拷贝和浅拷贝1、什么是数据类型?数据分为基本数据类型 (String, Number, Bool
       基础知识的知识点在前面介绍过了,涉及到的内容,都会在后面同步,今天我们主要来聊聊面试过程中的代码环节。关于代码,公司不同,要求不同,但是有一点是很显然的,那就是即使你写不出来可运行的代码,也得有清晰的思路,绝大部分公司则要求写出完整的代码,而代码能力和基础知识不同,不是短时间能够恶补的,更不是可以死记硬背的
转载 2024-01-28 00:11:39
223阅读
public class Solution { public ListNode ReverseList(ListNode head) { if(head==null) return null; //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null; ListNode pre = null;
原创 2022-01-26 10:15:37
410阅读
文章目录一、反转链表(leetcode 206)二、两个链表的交点(leetcode 160)三、链表的中间结点(leetcode 876)四、判断链表是否存在环(leetcode
原创 2023-08-29 12:06:18
188阅读
前言系列首发于『前端进阶圈』 ,若不想错过更多精彩内容,请“星标”一下,敬请关注最新消息。代码系列(二)手写函数柯里化 curring/** * 函数柯里化 curring * @param {Function} * @return 视具体方法而定 * * @logic * 1.创建一个参数数组 args * 2.创建一个函数,接收参数列表 * 3.函数判断参
原创 2023-04-26 09:34:55
108阅读
前言系列首发于公众号『前端进阶圈』 ,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。代码系列(四)手写触发控制器 Scheduler当资源不足时将任务加入队列,当资源足够时,将等待队列中的任务取出执行任务调度器-控制任务的执行,当资源不足时将任务加入等待队列,当资源足够时,将等待队列中的任务取出执行在调度器中一般会有一个等待队列queue,存放当资源不够时等待执行的任务。具有
原创 2023-05-02 08:38:19
151阅读
文章目录排序算法复杂度数组中出现次数超过一半的数字最小覆盖子串三数和接雨水链表环代理模式工厂模式观察者模式生产者消费者单例模式选择排序快排快排实现TopK归并排序死锁双线程轮流打印自定义线程池数组实现优先队列LinkedHashMap实现LRU 排序算法复杂度数组中出现次数超过一半的数字摩尔投票法:每次从序列里选择两个不相同的数字删除掉(或称为“抵消”),最后剩下一个数字或几个相同的数字,就是出
public class Solution { public ListNode ReverseList(ListNode head) { if(head==null) return null; //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null; ListNode pre = nu
原创 2021-07-12 09:48:44
142阅读
一、二维数组中的查找(leetcode 240)class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { if (matrix.el...
原创 2023-08-29 11:03:16
169阅读
1. 手写闭包首先,看一个简单的案例:1 for (var i = 0; i < 4; i++) { 2 setTimeout(() => { 3 console.log(i); 4 }, i * 1000); 5 } 6 // 每隔一秒打印 4 4 4 4因为var 没有块级作用域,循环变量变成全局变量。如何解决?----> 闭包1 for (
转载 2024-07-16 01:26:11
67阅读
  • 1
  • 2
  • 3
  • 4
  • 5