欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Day 10

Day 10

2025/4/19 13:36:58 来源:https://blog.csdn.net/Tangcan2/article/details/147014683  浏览:    关键词:Day 10

目录

  • 1.最长回文子串
    • 1.1 解析
    • 1.2 代码
  • 2.买卖股票的最好时机(一)
    • 2.1 解析
    • 2.2 代码
  • 3.[NOIP2002 普及组] 过河卒
    • 3.1 解析
    • 3.2 代码

1.最长回文子串

最长回文子串
枚举、字符串、dp

1.1 解析

在这里插入图片描述

1.2 代码

//中心扩展算法int getLongestPalindrome(string s) {int n=s.size();int len=1;//统计结果for(int i=0;i<n;i++)//枚举中心点{//当长度是奇数的时候int left=i-1,right=i+1;while(left>=0&&right<n&&s[left]==s[right]){left--;right++;}len=max(len,right-left-1);//当长度是偶数的时候left=i,right=i+1;while(left>=0&&right<n&&s[left]==s[right]){left--;right++;}len=max(len,right-left-1);}return len;}//方法二:动态规划
void ToLower(string& s){for(auto& e:s){if(e>='A'&&e<='Z') e+=32;}}int getLongestPalindrome(string s) {//1.准备工作ToLower(s);//2.创建dp表+初始化int n=s.size();vector<vector<bool>> dp(n,vector<bool>(n));//3.填表int maxlen=1;//记录回文串的长度for(int i=n-1;i>=0;i--){for(int j=i;j<n;j++){if(s[i]==s[j]){dp[i][j]=i+1<j?dp[i+1][j-1]:true;if(dp[i][j]&&maxlen<(j-i+1)){maxlen=j-i+1;}}}}return maxlen;}

2.买卖股票的最好时机(一)

买卖股票的最好时机(一)
贪心、线性dp

2.1 解析

在这里插入图片描述

2.2 代码

#include <iostream>
#include <vector>
using namespace std;int main()
{int n=0;cin>>n;vector<int> nums(n);for(int i=0;i<n;i++) cin>>nums[i];int ret=0;//记录结果int prevmin=nums[0];for(int i=1;i<n;i++){prevmin=min(prevmin,nums[i-1]);if(ret<nums[i]-prevmin)ret=nums[i]-prevmin;}cout<<ret;return 0;
}

3.[NOIP2002 普及组] 过河卒

[NOIP2002 普及组] 过河卒
二维dp

3.1 解析

在这里插入图片描述

3.2 代码

#include <iostream>
#include <vector>
using namespace std;int main()
{int n,m,x,y;cin>>n>>m>>x>>y;x+=1,y+=1;//1.创建dp表vector<vector<long long>> dp(n+2,vector<long long>(m+2));//2.初始化dp[0][1]=1;//3.填表for(int i=1;i<=n+1;i++){for(int j=1;j<=m+1;j++){if((i==x&&j==y)||(abs(i-x)+abs(j-y)==3&&i!=x&&j!=y))dp[i][j]=0;else dp[i][j]=dp[i-1][j]+dp[i][j-1];}}cout<<dp[n+1][m+1];return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词