LeetCode
刷题
hclbeloved
这个作者很懒,什么都没留下…
展开
-
LeetCode-栈-逆波兰表达式求值
1 题目150. 逆波兰表达式求值剑指 Offer II 036. 后缀表达式2 实现class Solution {public: int evalRPN(vector<string>& tokens) { stack<long> s; for (auto& str:tokens) { if (str.find_first_of("+-*\/") == string:原创 2022-02-24 16:56:14 · 491 阅读 · 0 评论 -
LeetCode-动态规划-路径的数目
1 题目剑指 Offer II 098. 路径的数目62. 不同路径2 实现class Solution {public: vector<vector<long>> dp; int uniquePaths(int m, int n) { //方法一:使用 dfs 超时 // int res = 0; // dfs(m, n, 0, 0, res); // return res;原创 2022-02-23 19:37:30 · 311 阅读 · 0 评论 -
LeetCode-回溯算法
1 介绍回溯问题的解决方法就是一个决策树的遍历过程,主要包括3个关键点:(1) 路径:已经做出的选择;(2)选择列表:能做出的所有选择的集合;(3)结束条件:选择列表被用完作为决策树的终止条件;2 题目2.1 所有子集剑指 Offer II 079. 所有子集78. 子集class Solution {public: //利用回溯算法 vector<vector<int>> s...原创 2022-02-23 14:42:02 · 594 阅读 · 0 评论 -
LeetCode-链表
1 链表排序1.1 链表排序剑指 Offer II 077. 链表排序148. 排序链表归并排序/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: struct ListN原创 2022-02-23 11:03:42 · 439 阅读 · 0 评论 -
LeetCode-二分查找
1 二分查找介绍2 题目2.12.22.32.42.52.62.72.82.92.102.11原创 2022-02-20 18:33:02 · 198 阅读 · 0 评论 -
LeetCode_除法求值
剑指 Offer II 111. 计算除法399. 除法求值class Solution {public: vector<double> calcEquation(vector<vector<string>>& equations, vector<double>& values, vector<vector<string>>& queries) { vector<doub原创 2022-02-01 13:13:47 · 793 阅读 · 0 评论 -
图-有向图-无向图-二分图-拓扑排序
1 简介由节点和边构成的,其实就是一种高级点的多叉树。2 图的表示(或者叫实现)图常用邻接表和邻接矩阵进行描述。2.1 邻接表邻接表:每个节点x的邻居都存到一个列表里,然后把x和这个列表关联起来,这样就可以通过一个节点x找到它的所有相邻节点。邻接表相对于邻接矩阵占用的空间较少;但是无法快速判断两个节点是否相邻;2.2 邻接矩阵邻接矩阵:是一个二维布尔数组,暂且称为matrix,如果节点x和y是相连...原创 2022-01-08 13:25:17 · 1570 阅读 · 0 评论 -
广度优先(BFS)
1 广度优先简介常常使用队列来配合解决。2 力扣题目2.1 二叉树的最小深度111. 二叉树的最小深度迭代版本:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {}原创 2022-01-06 11:15:32 · 524 阅读 · 0 评论 -
马拉车算法
最长回文子串-马拉车算法-2020-06-19.doc1 参考链接https://leetcode.wang/leetCode-5-Longest-Palindromic-Substring.html2 算法描述2.1 字符串预处理首先我们解决下奇数和偶数的问题,在每个字符间插入"#",并且为了使得扩展的过程中,到边界后自动结束,在两端分别插入 "^" 和 "$",两个不可能在字符串中出现的字符,这样中心扩展的时候,判断两端字符是否相等的时候,如果到了边界就一定会不相等,从而出了循环。经原创 2022-01-01 10:38:58 · 257 阅读 · 0 评论 -
LeetCode-049-字符串-变位词-字母异位词分组
class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { // 方法一:可行,但是速度较慢,参考:https://leetcode-cn.com/problems/VabMRr/ // int n = strs.size(); // vector<vector<int>>.原创 2021-12-31 10:10:36 · 146 阅读 · 0 评论 -
LeetCode-438-字符串-变位词-找到字符串中所有字母异位词
class Solution {public: vector<int> findAnagrams(string s, string p) { vector<int> r; do { int n = p.length(), m = s.length(); if (n > m) { break; .原创 2021-12-31 10:08:49 · 162 阅读 · 0 评论 -
LeetCode-097-字符串-子序列-字符串的交织
从上到下的动态规划,并配合备忘录的剪枝操作。class Solution {public: vector<vector<int>> dp; bool isInterleave(string s1, string s2, string s3) { // 方法一:递归,对字符串“从前到后”进行扫描,超出时间限制 // 为了缩短时间,可将方法一中的“对字符串从前向后扫描的递归”改为“对字符串从后向前扫描的递归”, //原创 2021-12-31 10:06:08 · 283 阅读 · 0 评论 -
LeetCode-097-字符串-子序列-子序列的数目
从上到下的动态规划,并且配合备忘录进行剪枝操作。class Solution {public: //dp[i][j]表示 t的前j个元素构成的字符串 在 s的前i个元素构成的字符串 中出现的个数 vector<vector<int>> dp; int numDistinct(string s, string t) { //方法一:dfs超出时间限制 // int n = s.length(), m = t.length原创 2021-12-31 10:03:41 · 293 阅读 · 0 评论 -
LeetCode-1143-字符串-子序列-最长公共子序列
由小到大的动态规划。class Solution {public: int longestCommonSubsequence(string text1, string text2) { //从底到上的动态规划 int n = text1.length(), m = text2.length(); if (0 == n*m) return 0; //dp[i][j]: text1[0...i-1]与tex原创 2021-12-31 10:00:36 · 159 阅读 · 0 评论 -
LeetCode-132-字符串-最少回文分割
从小到大的动态规划//参考题目:https://leetcode-cn.com/problems/M99OJA/class Solution {public: int minCut(string s) { //方法一:借鉴 剑指 Offer II 086. 分割回文子字符串,https://leetcode-cn.com/problems/M99OJA/ 超时 // vector<string> path; // int min原创 2021-12-31 09:58:15 · 360 阅读 · 0 评论 -
LeetCode-131-字符串-分割回文子串
比较简单,直接使用dfs即可。class Solution {public: vector<vector<string>> partition(string s) { vector<string> path; vector<vector<string>> result; helper(s,0,path,result); return result; }原创 2021-12-31 09:55:34 · 95 阅读 · 0 评论 -
LeetCode-647-字符串-回文字符串的个数
1 题目回文字符串的个数2 解答class Solution {public: int countSubstrings(string s) { int count = 0; for (int i = 0; i < s.size(); i++) { count += palindrome(s, i, i) + palindrome(s, i, i + 1); } retu原创 2021-12-31 09:53:07 · 102 阅读 · 0 评论 -
LeetCode-005-字符串-回文字符串
1 题目005 最长回文子串2 解答class Solution {public: string longestPalindrome(string s) { //方法一 // string res; // for (int i = 0; i < s.size(); i++) // { // // 以 s[i] 为中心的最长回文子串 // string s1 = pa原创 2021-12-31 09:50:12 · 92 阅读 · 0 评论 -
LeetCode-栈-单调栈
1 题目力扣2 解答class Solution {public: int largestRectangleArea(vector<int>& heights) { //从小到大的动态规划,经过分析不太好做。。。。 //从大到小的动态规划,貌似也不太好做。。。。。 //单调递增栈,参考链接:https://leetcode-cn.com/problems/0ynMMM/solution/jian-zhi-offer-原创 2021-12-31 09:41:03 · 266 阅读 · 0 评论