自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 动态规划学习笔记(来自:labuladong的算法小抄)

1. 动态规划一般形式:求最值2. 核心问题:穷举3. 三要素:重叠⼦问题:需要「备忘录」 或者「DP table」 来优化穷举过程, 避免不必要的计算最优⼦结构:子问题相互独立,可通过子问题最值得到原问题最值状态转移⽅程(最困难):思考方法:明确「状态」 -> 定义 dp 数组/函数的含义 -> 明确「选择」 -> 明确 base case4. 经典问题:斐波那契数列问题(重叠子问题)递归形式如下:int fib(int N) {if (N == 1 || N =

2020-12-08 21:12:30 611

原创 LeetCode:1382. 将二叉搜索树变平衡(C++带详细注释)

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int>mid;//存中序序列

2020-10-16 15:47:06 306

原创 Leetcode;200. 岛屿数量(DFS+BFS算法 C++带详细注释)

Leetcode;200. 岛屿数量(DFS算法 C++带详细注释)class Solution {public:// void dfs(vector<vector<char>>& grid,int i, int j)//DFS遍历函数// { int row=grid.size();//矩阵行数// int col=grid[0].size();//矩阵列数// if(i<0||i>=row||j&

2020-10-12 15:12:38 352

原创 LeetCode:94. 二叉树的中序遍历(递归和迭代两种方法)

LeetCode:94. 二叉树的中序遍历(递归和迭代两种方法)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), lef

2020-10-12 09:29:43 156

原创 LeetCode:445. 两数相加 II(C++带详细注释)

LeetCode:445. 两数相加 II(C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* addTwoNumbers(ListNode* l1

2020-10-12 09:25:34 138

原创 LeetCode:1484. 克隆含随机指针的二叉树(方法1:hash_map+DFS 方法2:两次DFS ,C++带详细注释)

LeetCode:1484. 克隆含随机指针的二叉树(方法1:hash_map+DFS 方法2:两次DFS, C++带详细注释)/** * Definition for a binary tree node. * struct Node { * int val; * Node *left; * Node *right; * Node *random; * Node() : val(0), left(nullptr), right(nullptr), r

2020-10-12 09:22:27 223

原创 LeetCode:199. 二叉树的右视图(C++带详细注释)

LeetCode:199. 二叉树的右视图(C++带详细注释)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:

2020-10-12 09:18:34 226

原创 LeetCode:面试题 02.05. 链表求和(C++带详细注释)

LeetCode:面试题 02.05. 链表求和(C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* addTwoNumbers(ListNode*

2020-10-12 09:15:31 179

原创 LeetCode:145. 二叉树的后序遍历(迭代和递归方法,C++带详细注释)

LeetCode:145. 二叉树的后序遍历(迭代和递归方法,C++带详细注释)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val

2020-10-12 09:06:00 91

原创 LeetCode:143. 重排链表(C++带详细注释)

LeetCode:143. 重排链表(C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNod

2020-10-11 16:33:44 293

原创 LeetCode:142. 环形链表 II(哈希表和快慢指针(龟兔赛跑)法 C++带详细注释)

LeetCode:142. 环形链表 II(哈希表和快慢指针(龟兔赛跑)法 C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycl

2020-10-11 16:31:12 159

原创 LeetCode:98. 验证二叉搜索树(C++带详细注释)

LeetCode:98. 验证二叉搜索树(C++带详细注释)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:vect

2020-10-11 16:23:22 171

原创 LeetCode:92. 反转链表 II(C++带详细注释)

LeetCode:92. 反转链表 II(C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseBetween(ListNode* he

2020-10-11 16:20:00 205

原创 LeetCode:18. 四数之和(C++带详细注释)

LeetCode:18. 四数之和(C++带详细注释)class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int>>res;//预定义结果数组 int len=nums.size();//获取数组长度; sort(nums.begin()

2020-10-11 16:17:58 406

原创 Leetcode:2. 两数相加(C++带详细注释)

Leetcode:2. 两数相加(C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode

2020-10-11 16:15:01 391

原创 Leetcode:25. K 个一组翻转链表(C++带详细注释)

Leetcode:25. K 个一组翻转链表(C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, Lis

2020-10-11 16:09:19 197

原创 Leetcode:23. 合并K个升序链表 (C++带详细注释)

Leetcode:23. 合并K个升序链表 (C++带详细注释)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, Lis

2020-10-11 16:03:51 396

原创 Leetcodde:1371. 每个元音包含偶数次的最长子字符串,C++带详细注释

Leetcodde:1371. 每个元音包含偶数次的最长子字符串,C++带详细注释class Solution {public: int findTheLongestSubstring(string s) { vector<int>pos(32,INT_MAX);//32个状态(0-31),数组值记录每个状态出现的位置 int ans=0;//最大子串长度 int status=0;//状态值0-31(5位二进制)1为奇0为偶

2020-10-11 15:57:50 236 1

原创 leetcode 面试题16.18.模式匹配:复现双百算法(分类别讨论),C++带详细注解

leetcode 面试题16.18.模式匹配:复现双百算法(分类别讨论),C++带详细注解分成5类讨论,定义了两个辅助函数:class Solution {public:bool kSegment(string value,int k)//判断value能否被分成k个一样的字串{ int len=value.size();//求value长度 if(len%k!=0) return false;//长度不是k的整数倍,不能 int m=len/k;//求k等分后每个字符串的

2020-10-11 15:47:44 225 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除