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…
day50 | dp11
两个都是买股票 123. 买卖股票的最佳时机 III 用很多数字来表示状态 class Solution { public: // 0 没有操作 // 1 第一次持股 // 2 第一次不持股 // 3 第二次持股 // 4 第二次不持股 int maxProfit(vector<int>& prices) { int n = p…
day49 | dp10
这两个可以都不用dp的做法写 121. 买卖股票的最佳时机 只能买卖一次。 class Solution { public: int maxProfit(vector<int>& prices) { int res = 0, num = prices[0]; for (int i = 1; i < prices.size(…
day48 | dp9
三个打家劫舍 198. 打家劫舍 每个点选或不选,每个状态由上一个转移而来 class Solution { public: int rob(vector<int>& nums) { int res = 0; int n = nums.size(); vector<vector<int>> dp(n, v…
python 学习笔记
python 的基本类型 数字整型与浮点型 type(2/2) <class 'float'> type(2//2) <class 'int'> 各进制的表示与转换 0b 二进制 0o 八进制 0x 十六进制 bin 转二进制 oct 转八进制 int 转十进制 hex 转十六进制 数…
智能指针
参考 http://t.csdn.cn/guyQ2 https://zhuanlan.zhihu.com/p/151744661 https://mp.weixin.qq.com/s/n8O0Xn8hqpa5On-h8Zlcbg 为什么有智能指针 C++使用内存的时候很容易出现野指针、悬空指针、内存泄露的问题。所以C++11引入了智能指针来管理内存…