摘要: 如何实现线程安全的LRU缓存? 1 不考虑缓存大小 方法1:使用ConcurrentHashMap即可。并发度高。【推荐】 class LRU<K, V> { // 正确:之所以不直接使用ConcurrentHashMap,是因为要减少暴漏的接口 private Map<K, V> cache = 阅读全文
posted @ 2023-05-26 07:45 编程爱好者-java 阅读(309) 评论(0) 推荐(0) 编辑
摘要: # 理解ConcurrentHashMap的多线程执行 ## 多线程下ConcurrentMap单个操作的顺序性/原子性 结论:ConcurrentHashMap单个操作,例如 get/put/remove都有原子性,即使操作同一个key,在底层会通过synchronized锁去排队执行。所以多线程 阅读全文
posted @ 2023-05-25 23:08 编程爱好者-java 阅读(129) 评论(0) 推荐(0) 编辑
摘要: ## 练习刷题思路 ### [Missing Number - LeetCode](https://leetcode.com/problems/missing-number/description/) 【easy】 分析: - 长度为n的int数组,包含无重复的元素,每个元素范围是[0, n]. 找 阅读全文
posted @ 2023-05-24 11:34 编程爱好者-java 阅读(7) 评论(0) 推荐(0) 编辑
摘要: ## 练习刷题思路 ### [722. 删除注释 - 力扣(LeetCode)](https://leetcode.cn/problems/remove-comments/) 【Mid】 思路: - 不难,但是细节比较多。要理清楚有点麻烦。【题目不好】 ```java class Solution 阅读全文
posted @ 2023-05-23 21:20 编程爱好者-java 阅读(4) 评论(0) 推荐(0) 编辑
摘要: ## [2225. 找出输掉零场或一场比赛的玩家 - 力扣(LeetCode)](https://leetcode.cn/problems/find-players-with-zero-or-one-losses/) 思路: - 这个太水了,直接使用HashMap和HashSet即可。 - 复杂度分 阅读全文
posted @ 2023-05-22 09:46 编程爱好者-java 阅读(6) 评论(0) 推荐(0) 编辑
摘要: # java 和 C++的容器类的对比 ## 1 相似功能的容器 C++和Java都有丰富的容器库,虽然它们在使用和实现细节上有所不同,但许多容器都有类似的功能和性能特性。以下是C++和Java容器的对比: 1. `std::vector` (C++) `ArrayList` (Java) - 都是 阅读全文
posted @ 2023-05-21 11:34 编程爱好者-java 阅读(81) 评论(0) 推荐(0) 编辑
摘要: ## 练习英文描述算法 ### [88. Merge Sorted Array - LeetCode](https://leetcode.com/problems/merge-sorted-array/description/?envType=study-plan-v2&id=top-intervi 阅读全文
posted @ 2023-05-20 22:55 编程爱好者-java 阅读(11) 评论(0) 推荐(0) 编辑
摘要: ## 题目列表: - P1. 【easy,会员】[Meeting Rooms - LeetCode](https://leetcode.com/problems/meeting-rooms/) - P2. 【Mid,会员】[Meeting Rooms II - LeetCode](https://l 阅读全文
posted @ 2023-05-20 10:21 编程爱好者-java 阅读(52) 评论(0) 推荐(0) 编辑
摘要: # 23-05-19 刷题 非常难的一个题目,然后解法也非常多。 ## 【Hard】[218. 天际线问题 - 力扣(LeetCode)](https://leetcode.cn/problems/the-skyline-problem/) 非常难的题目,需要多复习,和深入理解。 **实现1:**使 阅读全文
posted @ 2023-05-19 22:47 编程爱好者-java 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 算法题目1:【Mid】47. 全排列 II 思路分析: 将原问题转换成子问题,先不考虑重复元素,例如 P{1,2,3} = {"1" + P{2,3}, "2" + P{1,3}, "3" + P{1,2}}。之后再考虑重复元素。 怎么枚举?枚举每个位置可以填哪些数。【这种枚举方式能保证字典序,除此 阅读全文
posted @ 2023-05-17 21:46 编程爱好者-java 阅读(14) 评论(0) 推荐(0) 编辑