摘要:
LRU 缓存 1 /* 2 每次get一个key有两种情况,要么链表里面没有这个key那么可以直接返回-1, 3 如果链表里面有这个key,我们需要把查到的这个节点给移到链表头部, 4 对于put操作,我们直接通过调用get返回结果: 5 如果返回不是-1,说明链表里面已有key,那么我们的get函 阅读全文
摘要:
今天面试被问到了,多线程实现阻塞队列,记录一下。 1 import java.util.LinkedList; 2 import java.util.Queue; 3 import java.util.concurrent.locks.Condition; 4 import java.util.co 阅读全文
摘要:
近期做项目遇到了FullGC的问题,干脆总结一下Java内存区域分布和垃圾回收是咋回事。 Java内存区域按照线程隔离状态直接分成三大块空间: 线程私有: 程序计数器 是一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。在虚拟机概念模型里,字节码解释器工作时就是通过改变这个计数器的值来 阅读全文
摘要:
日志切面类用于记录Controller层的方法执行前和执行后的日志信息。定义一个切面类,并在该类中声明增强方法(如@Before、@After、@Around等注解的方法),然后在这些增强方法中通过JoinPoint参数获取当前连接点的信息,如方法名、参数、目标对象等。最后,在配置文件中声明切面和切 阅读全文
摘要:
Problem - G - Codeforces 思维题,推出公式用等比数列求和做一下。 1 #define IO std::ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) 2 #define bug2(x,y) cout<<#x<<" is "<<x< 阅读全文
摘要:
这题思维性很强,没搞出来,纯记录一下。补充了几个例子帮助理解。思路可以参考Codeforces Global Round 26 (A - E) - Lu_xZ - 博客园 (cnblogs.com) 1 #define IO std::ios::sync_with_stdio(0),cin.tie( 阅读全文
摘要:
题意 在三维空间中给你n个长方体,求空间中被这些长方体覆盖至少3次以上的区域的总体积。 思路 这题没给数据组数T的范围,大致看了一下其他人的都是枚举z来做的,所以我这边也是同样的做法转换成二维的扫描线来做,数组ci表示区间i被覆盖ci次的标记,具体扫描线怎么实现可以看我上篇博客。 1 #define 阅读全文
摘要:
Problem - 1255 (hdu.edu.cn) 题意 在二维平面坐标轴上输入n个矩形,问被这n个矩形覆盖了两次或两次以上的区域的面积总和。 给的题意有点问题,实际输入是矩形的左下和右上,另外样例1应该输出7.62. 思路 扫描线,这里是沿着x轴正方向每次用一条垂直于x轴的直线去扫,离散化y坐 阅读全文
摘要:
P1355 神秘大三角 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 队友推荐的,算是入门凸包,就是用叉积判断一下点是否相对每条边都在凸包的边的左侧。 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define 阅读全文
摘要:
Problem - G - Codeforces 存个字典树板子。 1 #include <bits/stdc++.h> 2 3 using i64 = long long; 4 5 constexpr int N = 1E7; 6 7 int trie[N][2]; 8 int cnt[N][2] 阅读全文