摘要: 最大栈 题目: 思路: ​ 使用一个主栈(stack)+辅助栈(assistStack),assistStack 的栈顶永远是最大值。 1、push: 1.1 对于 stack 来说,直接push即可:stack.push(x); 1.2 对于 assistStack 来说,要进行判断,它 push 待插入 阅读全文
posted @ 2022-05-07 22:53 ArtiaDeng 阅读(231) 评论(0) 推荐(0)
摘要: 堆排序 原文链接: https://blog.csdn.net/u010452388/article/details/81283998?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165156188216781818754081%2522% 阅读全文
posted @ 2022-05-03 18:36 ArtiaDeng 阅读(36) 评论(0) 推荐(0)
摘要: 缓存淘汰策略 LRU ##定义Node结点 注意这里的构造函数是要初始化的有参的构造函数。 class Node{ Node pre,next; //定义结点的前后结点 int key,val; public Node(int key,int val){ this.key=key; this.val=val; } } # 阅读全文
posted @ 2022-05-02 13:01 ArtiaDeng 阅读(36) 评论(0) 推荐(0)
摘要: 两个 大数求和  #分析如下: 大数加法 用BigInteger是投机取巧的做法,面试时这么干会被面试官喷。这题考察的是大数计算器的思想,类似的题还有lc 2(链表两数相加)。只需要想象一下我们在做加法时,都做了什么事情,其实只有两种情况:需要进位和不需要进位。所谓进位,无非是当前位相加大于等于10的话,就在下一位加 阅读全文
posted @ 2022-04-20 14:12 ArtiaDeng 阅读(196) 评论(0) 推荐(0)
摘要: 最小的第k个数  我么是采用优先队列来做的,其实就是堆。 import java.util.ArrayList; import java.util.PriorityQueue; public class Solution { public ArrayList<Integer> GetLeastNumbers_Solu 阅读全文
posted @ 2022-04-17 20:48 ArtiaDeng 阅读(24) 评论(0) 推荐(0)
摘要: 关于链表的中点 #单链表的中点 我们这就可以直接取前重点来比较嘛。 代码的话,要想验证回文,直接找到前中点的结点,然后反转后面的链表,再l1从开始比,l2从以反转的地方开始,直到比完l2就行了。 简单的一道题。 不过有些边界条件需要主要一下,以免出现空指针异常。 import java.util.*; /* * p 阅读全文
posted @ 2022-04-14 22:46 ArtiaDeng 阅读(31) 评论(0) 推荐(0)
摘要: 操作系统中的锁 开发过程中,最常⻅的就是互斥锁的了,互斥锁加锁失败时,会⽤「线程切换」来应对,当加锁失败的线 程再次加锁成功后的这⼀过程,会有两次线程上下⽂切换的成本,性能损耗⽐较⼤。 如果我们明确知道被锁住的代码的执⾏时间很短,那我们应该选择开销⽐较⼩的⾃旋锁,因为⾃旋锁加锁 失败时,并不会主动产⽣线程切换,⽽是 阅读全文
posted @ 2022-03-09 21:56 ArtiaDeng 阅读(379) 评论(1) 推荐(0)
摘要: 一个的分布式缓存项目(GoLang) 类redis分布式缓存 实现一个分布式缓存,功能有:LRU淘汰策略,http调用,并发缓存,一致性哈希,分布式节点,防止缓存击穿 1.实现LRU淘汰策略 LRU的数据结构大致如下,上层是一个map,key是数据对象的key值,而value值则是指向 下层双向链表的节点,在双向链表中,每个节点存储的元 阅读全文
posted @ 2022-02-28 23:04 ArtiaDeng 阅读(605) 评论(0) 推荐(0)
摘要: 优先队列的使用 频率前K个 优先队列的使用 频率前K个 力扣题目链接:https://leetcode-cn.com/problems/top-k-frequent-elements/ 创建优先队列: //其实本质上来说,优先队列就是一个大根堆或者是个小根堆 PriorityQueue<Integer> pq = new Pr 阅读全文
posted @ 2022-02-16 21:36 ArtiaDeng 阅读(55) 评论(0) 推荐(0)
摘要: Java中数字、字符、字符串 转换方法总结 ##数字、字符串相互转换 // 数字转字符串 method1 int number = 5; String str = String.valueOf(number); System.out.println(str); // 数字转字符串 method2 int number = 5; Integer 阅读全文
posted @ 2022-02-15 23:40 ArtiaDeng 阅读(2205) 评论(0) 推荐(1)