- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 Leetcode10. 正则表达式/剑指offer 19_C++_动态规划_递归
s: 文本串p: 模式串主要在于遇见 ‘ * ’的处理上动态规划动规步骤 确定dp数组 以及下标的含义 dp[i] [j] : true :表示s的前i - 1个字符 与 p的前 j - 1 个字符匹配 false:表示s的前i - 1个字符 与 p的前 j - 1 个字符不匹配 确定递推公式 p[j - 1] == ' * ' dp[i] [j] = dp[i] [j - 2] || (dp[i - 1] [j] && (s[i - 1]
2022-03-20 16:48:57 874
原创 Leetcode572. 另一棵树的子树/剑指offer26. 树的子结构_C++
两个题几乎是一模一样的首先给出leetcode512的解答,两个递归,注意isSubtree的递归因为,主树的节点与子树的节点值不相等的时候,需要一直遍历主树去找有没有跟子树根节点相等的值class Solution {public: bool compare(TreeNode* root, TreeNode* subRoot){ if(root == NULL && subRoot == NULL) return true; if
2022-03-20 11:25:54 906
原创 颠倒字符串/kmp/重复的子字符串_c++
151. 颠倒字符串中的单词分三步1. 双指针去掉多余空格,进行字符串resize去掉末尾的空格 去掉字符串中的多余空格(连续两个以上的只保留一个) 去掉字符串前的空格void removeSpace(string& s){ int slow = 0; int fast = 0; //去除s前的空格 while(fast < s.size() && s[fast] == ' '){ fast++;
2022-03-19 22:11:19 1074
原创 剑指 Offer 12. 矩阵中的路径_C++(回溯)
回溯都可以看成是树状问题,此题只要找到一个满足条件的路径即可,无需遍历整棵树,找到所有情况回溯模板框架void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }}此题需要
2022-03-14 15:21:36 1357
原创 归并排序_带注释(C++)
思想:分治(Divide and Conquer)、递归(Recursion)第一步:创建临时数组vector<int> temp(nums.size(), 0);第二步:划分区间(左闭右闭) void msort(vector<int>& numbers, vector<int>& temp, int left, int right){ //left == right 只有一个元素,不需要继续划分,本身有序,
2022-03-14 10:28:31 1251
原创 leetcode-455.分发饼干(注意判断条件的先后)
class Solution {public: int findContentChildren(vector<int>& g, vector<int>& s) { sort(g.begin(), g.end()); sort(s.begin(), s.end()); int result = 0; int j = s.size() - 1; for(int i = g.size.
2022-02-16 23:09:14 184
原创 leetcode93-复原IP地址(回溯-分割字符串)
IP地址判断是否合法bool isValid(string& s, int start, int end){ //if(start > end){ // return false; //} if(s[start] == '0' && start != end){ return false; } int num = 0; .
2021-12-17 16:27:31 144
空空如也
二叉树初始化问题——leetcode.530
2021-12-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人