03 2025 档案
力扣106. 从中序与后序遍历序列构造二叉树
摘要:常规题面,直接维护两种的遍历的下标位置进行递归即可。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 阅读全文
posted @ 2025-03-30 21:35 Coder何 阅读(31) 评论(0) 推荐(0)
力扣151. 反转字符串中的单词
摘要:暴力思路:找出所有单词后再反转,需要辅助空间。 1 class Solution { 2 public: 3 string reverseWords(string s) { 4 if (s.size() <= 1) { 5 return s; 6 } 7 vector<string> v; 8 st 阅读全文
posted @ 2025-03-26 19:08 Coder何 阅读(20) 评论(0) 推荐(0)
力扣19. 删除链表的倒数第 N 个结点
摘要:双指针法,保证左右指针之间距离为n-1,就能保证右指针到达最后一个的时候,左指针到达倒数第n个 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 阅读全文
posted @ 2025-03-15 22:08 Coder何 阅读(22) 评论(0) 推荐(0)
力扣24. 两两交换链表中的节点
摘要:1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode() : val(0), next(nullptr) {} 7 * List 阅读全文
posted @ 2025-03-13 16:06 Coder何 阅读(17) 评论(0) 推荐(0)
力扣25. K 个一组翻转链表
摘要:1.需要画图确定反转的逻辑 2.习惯性地使用pre、cur、nxt三个指针来思路清晰地完成一系列变换 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 阅读全文
posted @ 2025-03-13 15:29 Coder何 阅读(24) 评论(0) 推荐(0)
力扣82. 删除排序链表中的重复元素 II
摘要:暴力解: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int 阅读全文
posted @ 2025-03-05 21:39 Coder何 阅读(30) 评论(0) 推荐(0)
力扣22. 括号生成(回溯)
摘要:左括号在n之前可以随意输出,右括号只有比左括号少才可以输出。 1 class Solution { 2 public: 3 vector<string> res; 4 void backTravel(int n, int left, int right, string s) { 5 if (left 阅读全文
posted @ 2025-03-04 20:58 Coder何 阅读(42) 评论(0) 推荐(0)
力扣3. 无重复字符的最长子串
摘要:1 class Solution { 2 public: 3 int lengthOfLongestSubstring(string s) { 4 int left = 0, right = 0; 5 int start = 0, len = 0; 6 int repeat = 0; //记录重复元 阅读全文
posted @ 2025-03-04 19:06 Coder何 阅读(19) 评论(0) 推荐(0)
力扣438. 找到字符串中所有字母异位词(滑动窗口)
摘要:常规的滑动窗口问题,要注意满足答案的条件:1.窗口长度与p字符串长度一致2.字符充足的个数与p中不重复个数相同 1 class Solution { 2 public: 3 vector<int> findAnagrams(string s, string p) { 4 vector<int> re 阅读全文
posted @ 2025-03-04 19:05 Coder何 阅读(28) 评论(0) 推荐(0)
力扣76. 最小覆盖子串(滑动窗口)
摘要:要注意的细节比较多,主要是还需要优化查询满足条件的方式 1 class Solution { 2 public: 3 vector<int> cnt, need; 4 // bool judge(string t) { //该查询方法会超时 5 // for(auto i : t) { 6 // i 阅读全文
posted @ 2025-03-03 20:30 Coder何 阅读(39) 评论(0) 推荐(0)
力扣167. 两数之和 II - 输入有序数组
摘要:每次固定一个数,再二分搜另一个数即可。 1 class Solution { 2 public: 3 vector<int> numbers; 4 int binaryFind(int left, int right, int key) { 5 if (left > right) { 6 retur 阅读全文
posted @ 2025-03-03 16:34 Coder何 阅读(18) 评论(0) 推荐(0)
力扣86. 分隔链表
摘要:1.需要新建两个链表,一个存取比x小的,另一个存取大于等于x的2.将1中的两个链表合并 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * Li 阅读全文
posted @ 2025-03-03 15:06 Coder何 阅读(27) 评论(0) 推荐(0)
力扣61. 旋转链表
摘要:注意去除重复的轮数 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode() : val(0), next(nullptr) { 阅读全文
posted @ 2025-03-02 21:57 Coder何 阅读(23) 评论(0) 推荐(0)