求最大递增数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求最大递增数相关的知识,希望对你有一定的参考价值。

题目:

描述:  
输入一串数字,找到其中包含的最大递增数。递增数是指相邻的数位从小到大排列的数字。如: 2895345323,递增数有:289,345,23, 那么最大的递减数为345。  
输入:  
输入一串数字,默认这串数字是正确的,即里面不含有字符/空格等情况  
输出:  
输出最大递增数  
样例输入:  
123526897215  
样例输出:  
2689

代码:

#include "cstdio"
#include "algorithm"
#include "cstring"
#include "cmath"
using namespace std;
char s[500];
int main()
{
    int ans=0,maxn;
    while (scanf("%s",s)==1){
        int n=strlen(s);
        ans=s[0]-0;
        maxn=ans;
        for(int i=1;i<n;i++){
            if(s[i]>s[i-1]){
                ans=ans*10+s[i]-0;
            }
            else {
                maxn=max(ans,maxn);
                ans=s[i]-0;
                maxn=max(ans,maxn);
            }
        }
        printf("%d\n",maxn);
    }
    return 0;
}

 

以上是关于求最大递增数的主要内容,如果未能解决你的问题,请参考以下文章

小程序 - 最大递增数

单调队列与单调栈作用

动态规划之最大递增子序列

算法 LC 动态规划 - 最大递增子序列

2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度。 n <= 10^6。 来自字节。5.6笔试。

求两个数的最大公约数代码