力扣hot100—栈5题
写题目的时候,一般用双端队列来模拟栈。 双端队列: Deque<> queue = new LinkedList<>(); // 添加到队尾 deque.offerLast(1); // 推荐,返回true/false // 添加到队首 deque.offerFirst(2); // 推荐 // 移除队首 first = deque.p…
2026-1-31 22:46
|
|
2026-1-31 22:46
力扣hot100—二分查找6题
二分查找的通用板子,需要注意理解: ep:1,2,2,2,3,5 //查大于等于target的第一个位置, target=2,目标位置是1 int l = 0, r = n - 1; while (l < r) { int mid = l + r >> 1; // 找最早的那个值,nums[mid] >= x时,即使等于目标值,也要继续向左找…
2026-1-31 22:25
|
|
2026-1-31 22:29
力扣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