上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 23 下一页
摘要: /***** 定义状态: DP[i][j]其中i表示word1前i个字符,j表示Word2前i个字符 DP[i][j]表示单词1前i个字符匹配单词2前j个字符,最少变换次数; 状态转移: for i:[0,m] for j:[0,n] if(word1[i-1]==word2[j-1]) DP[i] 阅读全文
posted @ 2019-05-16 14:57 Joel_Wang 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 动态规划:O(n*amount)时间复杂度,O(amount)空间复杂度,可以类比为coins[j] step上楼梯,最终为上到amont 阅读全文
posted @ 2019-05-16 11:35 Joel_Wang 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 动态规划new version: 动态规划:O(n^2) 80ms 二分查找:O(nlog(n))8ms 一个例子为:因为LIS是一个递增序列,因此可以用二分查找来得到结果 阅读全文
posted @ 2019-05-16 10:56 Joel_Wang 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 转载自 https://www.cnblogs.com/Tang-tangt/p/9291018.html 二分查找的函数有 3 个: 参考:C++ lower_bound 和upper_bound lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置。 up 阅读全文
posted @ 2019-05-16 10:35 Joel_Wang 阅读(1317) 评论(0) 推荐(0) 编辑
摘要: 这道题最初刷题连答案都看不懂,实在不是一道容易的题目。 补充两个C++知识: 1)string对象的.c_str() 返回一个c语言字符串指针 即const char* p类型的指针; 2)c语言字符串的末尾为‘\0’可以用 *p==0 判断是否到达末尾。 递归解法不断的对当前情况和之后的情况进行判 阅读全文
posted @ 2019-05-15 22:26 Joel_Wang 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 继承leetcode123以及leetcode309的思路,,但应该也可以写成leetcode 152. 乘积最大子序列的形式 阅读全文
posted @ 2019-05-15 12:22 Joel_Wang 阅读(296) 评论(0) 推荐(0) 编辑
摘要: O(n)时间O(1)空间 阅读全文
posted @ 2019-05-15 12:19 Joel_Wang 阅读(124) 评论(0) 推荐(0) 编辑
摘要: /***** //sell[i]表示截至第i天,最后一个操作是卖时的最大收益; //buy[i]表示截至第i天,最后一个操作是买时的最大收益; //cool[i]表示截至第i天,最后一个操作是冷冻期时的最大收益; //递推公式: //sell[i] = max(buy[i-1]+prices[i], sell[i-1]) (第一项表示第i天卖出,第二项表示第i天冷冻) //buy[i] =... 阅读全文
posted @ 2019-05-15 12:09 Joel_Wang 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 使用动态规划的解法,空间复杂度O(2*2)如果交易k次则为O(2*k),时间复杂度O(2n),交易k次为O(n*k), 因此本题实际上可以退化为买卖一次的情况:去掉buy2和sell2,即leetcode121; 以及进化为买卖k次的情况,即状态变量增加为k个buy和sell,即leetcode18 阅读全文
posted @ 2019-05-14 23:09 Joel_Wang 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 参见 本题采用了第一列初始化后,从左侧向右开始递推的方式,但从上往下递推应该也成立,以后尝试一下 想写一个普适性的适用于n天交易k次持有j股的状态方程但是有问题;对于交易次数过多的情况数组会超出界限: 测试数据:100 [106,373,495,46,359,919,906,440,783,583, 阅读全文
posted @ 2019-05-14 16:36 Joel_Wang 阅读(534) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 23 下一页