标签:Daliy dp2 dp1 int Algorithm 77 vector prices triangle
Nothing to fear
种一棵树最好的时间是十年前,其次是现在!
那些你早出晚归付出的刻苦努力,你不想训练,当你觉的太累了但还是要咬牙坚持的时候,那就是在追逐梦想,不要在意终点有什么,要享受路途的过程,或许你不能成就梦想,但一定会有更伟大的事情随之而来。 mamba out~
2020.5.9
人一我十,人十我百,追逐青春的梦想,怀着自信的心,永不言弃!
lc-96. 不同的二叉搜索树
class Solution {
public:
int numTrees(int n) {
vector<long long> dp(n + 1);
dp[0] = 1,dp[1] = 1;
for(int i = 2;i <= n ;i ++)
{
dp[i] = dp[i-1]*(4*i-2)/(i+1);
}
return dp[n];
}
};
lc-714. 买卖股票的最佳时机含手续费
dp1 : 第i天手上有股票得最大价值
dp2 : 第i天手上无股票得最大价值
dp1[i] = max(前i天股票得最大收益,买入今天得股票得收益)
dp2[i] = max(前一天没股票得最大收益,前i天得股票再今天卖掉)
class Solution {
public:
int maxProfit(vector<int>& prices, int fee) {
int n = prices.size();
vector<int> dp1(n+1),dp2(n+1);
dp1[0] = -prices[0];
for(int i = 1;i < n ;i ++)
{
dp1[i] = max(dp1[i-1],dp2[i-1] - prices[i]);
dp2[i] = max(dp2[i-1],dp1[i-1] + prices[i] - fee);
}
return dp2[n-1];
}
};
lc-120. 三角形最小路径和
数字三角形模型
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int n = triangle.size();
vector<vector<int>> f(n , vector<int>(n,0x3f3f3f));
for(int i = 0;i < n ;i ++)
{
for(int j = 0;j < triangle[i].size() ;j ++)
{
if(i == 0)f[i][j] = triangle[i][j];
else if(i != 0 && j == 0)f[i][j] = f[i-1][j] + triangle[i][j];
else f[i][j] = min(f[i-1][j],f[i-1][j-1]) + triangle[i][j];
}
}
int ans = 0x3f3f3f;
for(int i = 0;i < n ;i ++)ans = min(ans,f[n-1][i]);
return ans;
}
};
lc-1227. 飞机座位分配概率
智力题吧 我也能秒杀智力题了
class Solution {
public:
double nthPersonGetsNthSeat(int n) {
return (n == 1) ? 1 : 0.5;
}
};
标签:Daliy,dp2,dp1,int,Algorithm,77,vector,prices,triangle 来源: https://www.cnblogs.com/wlw-x/p/12866014.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。