分类: 代码随想录算法训练营

52 篇文章

代码随想录一刷总结
其实我有一点点基础,之前曾经尝试过刷完代码随想录,但是由于篇幅较长又没有太大的自制力,好几次尝试都不了了之。 这次刷完了!我想对我最大的帮助是让我心静下来了,两个月倏忽就过去了,曾经觉得遥不可及的目标不知不觉中实现了。 下个阶段手写一个操作系统!(将会在github上更新 https://github.com/wushuming666/Tiny-O…
day60 | 单调栈3
84. 柱状图中最大的矩形 class Solution { public: int largestRectangleArea(vector<int>& heights) { int n = heights.size(); stack<int> sta; // 头部和尾加入0 heights.insert(heigh…
day57 | dp17 回文
从左下往右上遍历 647. 回文子串 class Solution { public: // 当s[i] == s[j]时: // if j - i <= 1 : dp[i][j] = true; // else if dp[i+1][j-1] : dp[i][j] = true; // 需要从左下推出右上 int countSubstrin…
day56 | dp16
两个字符串,二维表示状态 583. 两个字符串的删除操作 class Solution { public: // 寻找最长公共串 int minDistance(string word1, string word2) { int n1 = word1.size(), n2 = word2.size(); vector<vector<in…
day55 | dp15
还是比较头疼这种两个字符串,用二维下标表示状态的题目。 392. 判断子序列 也可以双指针 class Solution { public: bool isSubsequence(string s, string t) { int n1 = s.size(), n2 = t.size(); vector<vector<int>&g…
day53 | part14
1143. 最长公共子序列 1035. 不相交的线 这两题一样 class Solution { public: int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) { int n1 = nums1.size(), n2 = nums2.…
day52 | dp13
比前面的卖股票简单多了 300. 最长递增子序列 除了dp,还可以用贪心策略,尽量让“成本”最小 class Solution { public: int lengthOfLIS(vector<int>& nums) { int n = nums.size(); int maxn = 1; vector<int> d…
day51 | dp12
比昨天的相比还是简单些 309. 最佳买卖股票时机含冷冻期 四个状态,买入、今天卖出、冷冻、卖出状态 class Solution { public: // 0 买入 // 1 今天卖出 // 2 冷冻 // 3 卖出状态 int maxProfit(vector<int>& prices) { int n = prices.s…