力扣hot100—LinkedHashMap实现LRU缓存
可以用LinkedHashMap的数据结构实现;要自己手写的话,就需要维护一个哈希+双向链表的数据结构,使用双链表来维护缓存项的访问顺序。最近访问的项位于链表的头部,而最久未访问的项位于链表的尾部。 Map<Integer,MyNodes>,底层就是数组+双向链表。put操作,找出来修改值,放到最前面,找不到就新增,节点放最前面get操作就把…
2025-10-10 19:37
|
|
2025-10-10 19:38
剑指offer67题-No53.表示数值的字符串
字符串处理 leetcode上精简的题解方法。 .出现正确情况:只出现一次,且在e的前面 e出现正确情况:只出现一次,且出现前有数字 +和-出现正确情况:只能在开头和e后一位 class Solution { public: bool isDigital(char x){ return x >= '0' && x <= '9'…
2025-6-05 14:03
|
|
2025-6-05 14:03
剑指offer67题-No52.正则表达式匹配
字符串处理 没想到是动态规划题,感觉特别难 LCR 137. 模糊搜索验证 - 力扣(LeetCode) 法1:DP 用f[i][j]表示s的前i个字符与p的前j个字符是否能匹配。考虑情况: p的第j个字符是小写字符:f[i][j] = f[i-1][j-1] (if s[i] = p[j])f[i][j] = false (if s[i] ≠ p…
2025-6-05 13:55
|
|
2025-6-05 14:02
剑指offer67题-No51.构建乘积数组
法1:暴力 时间复杂度为On^2 vector<int> multiply(vector<int>& A) { // write code here vector<int> res; int len = A.size(); for(int i = 0; i < len; ++i){ int b = 1; for(in…
2025-6-05 13:53
|
|
2025-6-05 13:53
剑指offer67题-No49.字符串转化为整数
模拟题,感觉挺复杂的 class Solution { public: int myAtoi(string str) { int len = str.size(); int i = 0, flag = 1; long long base = 0; // 跳过前导空格 while (i < len && str[i] == ' …
2025-6-05 13:50
|
|
2025-6-05 13:52
剑指offer67题-No46.孩子们的游戏(圆圈中最后剩下的数)
法1:约瑟夫环递归 n个数相后去掉第m个数,还剩下n−1个数,依然要继续去掉第m个数。由此,从(n,m)的问题变成了(n−1,m)的子问题。时间复杂度和空间复杂度都是On 说实话不理解,先背住吧 int f(int n,int m){ if(n == 1) return 0; else return (f(n-1,m) + m) % n; } in…
2025-6-02 15:23
|
|
2025-6-02 15:23