还是比较头疼这种两个字符串,用二维下标表示状态的题目。 392. 判断子序列 也可以双指针 class Solution { public: bool isSubsequence(string s, string t) { int n1 = s.size(), n2 = t.size(); vector<vector<int>&g…
1143. 最长公共子序列 1035. 不相交的线 这两题一样 class Solution { public: int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) { int n1 = nums1.size(), n2 = nums2.…
比前面的卖股票简单多了 300. 最长递增子序列 除了dp,还可以用贪心策略,尽量让“成本”最小 class Solution { public: int lengthOfLIS(vector<int>& nums) { int n = nums.size(); int maxn = 1; vector<int> d…
比昨天的相比还是简单些 309. 最佳买卖股票时机含冷冻期 四个状态,买入、今天卖出、冷冻、卖出状态 class Solution { public: // 0 买入 // 1 今天卖出 // 2 冷冻 // 3 卖出状态 int maxProfit(vector<int>& prices) { int n = prices.s…
两个都是买股票 123. 买卖股票的最佳时机 III 用很多数字来表示状态 class Solution { public: // 0 没有操作 // 1 第一次持股 // 2 第一次不持股 // 3 第二次持股 // 4 第二次不持股 int maxProfit(vector<int>& prices) { int n = p…
这两个可以都不用dp的做法写 121. 买卖股票的最佳时机 只能买卖一次。 class Solution { public: int maxProfit(vector<int>& prices) { int res = 0, num = prices[0]; for (int i = 1; i < prices.size(…
三个打家劫舍 198. 打家劫舍 每个点选或不选,每个状态由上一个转移而来 class Solution { public: int rob(vector<int>& nums) { int res = 0; int n = nums.size(); vector<vector<int>> dp(n, v…
python 的基本类型 数字整型与浮点型 type(2/2) <class 'float'> type(2//2) <class 'int'> 各进制的表示与转换 0b 二进制 0o 八进制 0x 十六进制 bin 转二进制 oct 转八进制 int 转十进制 hex 转十六进制 数…
139. 单词拆分 完全背包,某一特定的排列 class Solution { public: bool wordBreak(string s, vector<string>& wordDict) { int n = s.size(); unordered_set<string>uset(wordDict.begin…
参考 http://t.csdn.cn/guyQ2 https://zhuanlan.zhihu.com/p/151744661 https://mp.weixin.qq.com/s/n8O0Xn8hqpa5On-h8Zlcbg 为什么有智能指针 C++使用内存的时候很容易出现野指针、悬空指针、内存泄露的问题。所以C++11引入了智能指针来管理内存…